Inspiration

Sudoku on Reddit feels natural: fast daily puzzles, public bragging rights, and comment threads full of strategy. I wanted a native Reddit experience that loads instantly inside a post, runs on desktop and mobile, and sparks daily discussion. The result is Sudoku Sprint: quick 6×6 and 9×9 speed runs with live leaderboards, streaks, and a clean UI.

What it does

  • A Devvit Web game that renders inside a Reddit post and supports both Easy 6×6 and Hard 9×9 daily puzzles.
  • Live leaderboards per puzzle using Redis sorted sets. All‑time leaderboards are computed on the fly from daily results, so there is no fragile migration.
  • Streak tracking with a 30‑day activity heatmap and best run highlights.
  • A daily scheduler that posts one fresh challenge per subreddit per day, with duplicate prevention.
  • Progress auto-saves so you can come back later, instant conflict feedback, and a compact phone‑first layout.

How we built it

  • Each daily post maps to a date. The app deterministically generates two puzzles: daily_easy_<date> and daily_hard_<date>.
  • Scores are stored in puzzle:<puzzleId>:scores as Redis ZSETs using the numeric score for ranking.
  • The all‑time board is derived in real time by aggregating daily sets for a date range and summing per user. No separate write path is needed, which keeps data consistent.

Challenges we ran into

  • useAsync only fires after the user interacts with the app, this took a while to figure out.
  • Avoiding duplicate daily posts in multi‑subreddit installs. I solved this with daily-puzzle-post:<subreddit>:<date> guards. The docs say the redis instances are separate per subreddit, but I think I saw different behavior.
  • Balancing fairness and speed. The score formula needed to feel rewarding for both quick easy runs and longer hard clears.
  • Keeping the UI snappy while persisting session state and autosaving every few seconds.
  • Handling completion checks cleanly: user bests per puzzle, leaderboards, and session replay without inconsistent states.

Accomplishments that we're proud of

  • Built and shipped this app quickly with no prior devvit knowledge
  • A small amount of users are actually playing it!

What we learned

  • Devvit Web’s render model and hooks: moving network and Redis reads into useAsync to avoid server‑call in render.
  • Designing Redis keys for instant reads and simple aggregation. Real‑time all‑time boards are simpler and safer than backfills.
  • Time zone and date parsing for daily content on Reddit posts. Parsing human titles like “Saturday, August 9, 2025” reliably matters.
  • Mobile‑first UI inside a constrained post surface: minimal chrome, high‑contrast theme‑aware colors, and tap targets that feel good.
  • Integrating devvit MCP server into workflow dramatically improves agent performance.

What's next for Sudoku Sprint

  • More social dynamics (current high score, share, better leaderboard)
  • Pencil mark support (90% done already)

Built With

Share this project:

Updates