Inspiration

LinkedIn's Pinpoint game hooked me — five clues, one hidden category, a satisfying "aha!" moment. But I kept thinking: countries would be even better for this. Everyone knows a little geography, and the gap between "I've heard of this place" and "I know this obscure fact" is where the fun lives. A clue like "This country practices forest bathing as a form of therapy" can stump even well-traveled players, while "Famous for Mount Fuji and cherry blossom season" gives everyone a fair shot. That hard-to-easy progression felt perfect for a daily puzzle people could share and compare on Reddit.

What it does

Country Pinpoint gives players a new country to guess every day. You start with one cryptic clue — the hardest — and get up to 5 guesses. Each wrong answer reveals the next clue, which is progressively easier. Guess the country correctly and you see how you stack up against the community. Use all 5 guesses without getting it right, and the answer is revealed along with all the clues you missed.

The game lives inside Reddit posts as a Devvit app. A compact splash card appears in the feed — tap "Play Now" to expand into the full game. Your progress is saved, so you can close and come back without losing your guesses.

How we built it

  • Frontend: React 19 and Tailwind CSS 4 for a responsive, animated UI. A dark space-themed palette (deep navy, crimson, purple) gives it a distinct identity from LinkedIn's Pinpoint.
  • Backend: Hono server running in Devvit's serverless environment. Game state is persisted in Redis per-user per-post.
  • Puzzle engine: 50 handcrafted puzzles with 5 clues each, selected deterministically by date so every player gets the same daily puzzle without any cron jobs or scheduling.
  • Search UX: An autocomplete input that filters ~200 countries in real-time with full keyboard navigation — arrow keys, Enter to select, Escape to dismiss.
  • Two-view architecture: A lightweight splash screen for the Reddit feed (inline view) and a full game experience when expanded.

Challenges we ran into

Clue quality was the bottleneck. Writing 250 clues (5 × 50 countries) where difficulty genuinely scales from obscure to obvious took more time than the entire codebase. A "hard" clue for one person is trivial for another — I had to balance across science, history, culture, and geography so no single knowledge domain dominates.

Mobile autocomplete inside an iframe was tricky. No native select elements, no window.alert for feedback — everything had to be custom-built. Getting the dropdown to feel snappy on both desktop keyboard users and mobile tap users required careful state management.

State edge cases around daily puzzle transitions — if a user starts playing, the day rolls over, and they return — needed careful Redis key design to keep each post's puzzle isolated.

Accomplishments that we're proud of

  • The clue progression genuinely works. Playtesters consistently found clue #1 challenging and clue #5 satisfying, which was the hardest thing to get right.
  • The game loads fast in the Reddit feed. The splash screen has zero heavy dependencies — just styled HTML and a button.
  • Community stats give the game a social layer. Seeing that 60% of players needed 4+ guesses makes your 2-guess win feel earned.
  • Clean codebase: zero TypeScript errors, zero lint warnings, and a clean build from day one.

What we learned

  • Devvit's inline/expanded view split is a powerful pattern for games — the feed card acts as a hook, and the expanded view delivers the experience. It's a design constraint that actually improved UX.
  • React 19's stricter rules (no setState in effects, no ref reads during render) forced better component design. The CountrySearch component went through three iterations to satisfy the linter, and the final version is genuinely cleaner.
  • Content design is engineering. Crafting 250 factually accurate, difficulty-calibrated, non-ambiguous clues was as rigorous as writing the game logic.

What's next for Country Pinpoint

  • Multiplayer mode — Two or more players see the same clues simultaneously and race to guess first. If scores are tied, a sudden-death tiebreaker round with a single bonus clue decides the winner.
  • Timed mode — A 30-second countdown per clue adds pressure. Take too long and the next clue auto-reveals, eating into your guess count. Leaderboards track the fastest solves.
  • Practice mode — Play unlimited puzzles outside the daily rotation to sharpen your geography skills without affecting your streak or stats. Great for newcomers who want to learn the format.
  • Richer hint types — Beyond text clues, we'll introduce hints like silhouette outlines of the country's shape, flag color palettes (without showing the full flag), traditional music snippets, and national dish photos — all for the same country, mixing knowledge domains.
  • More puzzles — Expanding from 50 to 200+ countries so daily puzzles don't repeat for over 6 months.
  • Streak tracking — Track consecutive days played and correct guesses, with flair or badges on Reddit profiles.
  • Continent hints — After 2 wrong guesses, subtly highlight the continent on a mini world map without giving away the exact country.
  • User-submitted puzzles — Let the community contribute clue sets, with voting to surface the best ones into the daily rotation.

Built With

Share this project:

Updates