Inspiration

Love watches. Most watch-ID quizzes are, guess the brand and family and you're done. Collectors read a watch in layers: brand, then family, then the specific line, then the exact reference. Wanted to make a game that respects that.

What it does

A daily watch-ID game on Reddit. One photo each for two watches with four rounds that get progressively harder: brand, family, collection, then the exact reference number. Multiple choice, quickly timed rounds. Then pick your favorite of the two watches. Players come back the next day to see if they got it right and it zooms into the exact detail that gives the watch away and explains why. Players vote on their favorite watch, build a streak, and climb daily/weekly/all-time leaderboards.

How we built it

A Devvit Web app: Hono server, React webview. Partway through, found that Reddit's Devvit sandbox blocks the webview from fetching our own domain entirely, so the whole data and photo pipeline got rebuilt to bundle at build time instead of fetching live. Multiple-choice distractors are generated per round straight from the watch catalog's own data, so wrong answers are always plausible, never random noise.

Challenges we ran into

Time, mostly. Discovering mid-build that the webview couldn't reach our own domain at all meant rebuilding the data/photo pipeline to be fully self-contained instead of live-fetched. Also spent submission day migrating off the deprecated Blocks post model and reworking every screen to remove in-line scrolling per Reddit's App Review rules.

Accomplishments that we're proud of

The rebuild that made this possible at all: the game used to depend on hitting an external API for every watch, now it ships bundled and self-contained with zero live dependency for the daily board. Also proud that the "here's how you could have known" learning moment for each watch, not a hand-picked few, since the tells are generated straight from the catalog, not authored one by one.

What we learned

Devvit's sandbox networking is stricter than it first looks, bundle early rather than assume live fetches will work. Also: the second you let a player tab away and Google the answer, a timed quiz stops being a game.

What's next for GrailFinder

Community-sourced photos so the catalog keeps growing past what we can license directly, condition-aware price context per watch, and a weekly "most wanted" verdict thread built from the community vote.

Built With

  • claude
Share this project:

Updates