Returning visitors see their high score on the home screen. Gives them a target to beat and makes the game feel personalized. Pure localStorage, zero backend.
Humans can’t reliably recall colors. This is a simple game to see how good (or bad) you are at it.
We’ll show you five colors, then you’ll try and recreate them.
Humans can’t reliably recall colors. This is a simple game to see how good (or bad) you are at it.
We’ll show you five colors, then you’ll try and recreate them.
Stored in localStorage. Shown only after at least one completed game. Disappears if cleared.
When a creator returns to the site, we check if anyone played their last challenge. If so, show a banner that rewards sharing and invites resharing. Dismissable, auto-hides after 10s.
Humans can’t reliably recall colors. This is a simple game to see how good (or bad) you are at it.
We’ll show you five colors, then you’ll try and recreate them.
Humans can’t reliably recall colors. This is a simple game to see how good (or bad) you are at it.
We’ll show you five colors, then you’ll try and recreate them.
Tapping "Share again" re-opens the challenge link share flow. Banner queries challenge_scores on page load. Shown once per visit, max.
The biggest retention lever. When a joiner finishes a challenge, they see a "Challenge back" button. One tap creates a brand new challenge and opens the share sheet. Turns a dead-end into infinite ping-pong.
"Challenge back" only appears for joiners (not for the creator who's viewing their own results). Creates a fresh challenge with new colors and the joiner's name as creator. Share text: "I scored 38.6/50. Your turn."
Including the actual score in the share sheet creates a much stronger pull. A specific number ("I scored 38.6/50") is more compelling than generic copy ("Try this game").
Challenge setup share text stays unchanged (score doesn't exist yet at that point). Only challenge results and rematch shares include the score.