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
- devvit-web
- phaser.js
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.