Inspiration

Daily games are most fun when everyone in a community faces the same challenge and has a reason to compare results. We wanted to turn that loop into a native Reddit experience: five quick questions, one official score, a shared leaderboard, and a fresh challenge every UTC day.

What it does

Daily Guess Arena gives every installation a deterministic five-question challenge. Players answer against the clock, earn points for accuracy and speed, and compete on a per-subreddit daily leaderboard. Each Reddit user gets one official submission per day, followed by unlimited practice rounds. Results include answer explanations, rank, streak progress, and a native share action.

How we built it

The client uses React for the application state machine and Phaser 4 for the timed play area. React owns loading, start, submit, results, leaderboard, and error states; Phaser owns question rendering and input inside the game canvas.

The server is built with Hono on Devvit Web. It generates each daily challenge from a seeded xmur3 + mulberry32 random-number generator using the UTC date and subreddit ID. Devvit Redis stores attempts, submissions, streaks, profiles, and sorted-set leaderboards.

Scoring is server-authoritative. Correct answers never reach the client before submission, elapsed time comes from server timestamps, and scores are recomputed from the stored attempt. An idempotent first-write-wins submission path ensures that only one official result per user per day can update the leaderboard.

Challenges we ran into

The main challenge was keeping React and Phaser responsibilities clean while making the canvas feel like part of a single responsive product. We also had to make deterministic question selection and option shuffling identical for every player without exposing answers, while handling duplicate submissions and invalid selections safely.

Accomplishments that we're proud of

  • A polished mobile-first game that runs directly inside Reddit
  • Deterministic shared daily challenges with difficulty balancing
  • Server-authoritative anti-cheat and idempotent scoring
  • Daily leaderboards, streaks, practice mode, explanations, and native sharing
  • A strict client/server/shared TypeScript architecture with automated type, lint, build, and logic-test gates

What we learned

Reddit games work best when the app, post, community, and comments form one experience. Keeping the server authoritative also made the client simpler: Phaser can focus on delightful interaction while Devvit owns identity, persistence, and trusted results.

What's next

We plan to add scheduled daily posts, weekly leaderboards, achievements, community-specific topic packs, and contribution mechanics that let communities help shape future challenges.

Built With

Share this project:

Updates

Submission history