Inspiration
I wanted to build something that felt genuinely Reddit-y. Not a game about Reddit, but one built around what communities already do well: create, guess, and share. Drawing games are easy to pick up, surprisingly engaging, and naturally social. So I built Snap Sketch: guess 3 drawings, draw 1 word, and once a moderator approves your sketch, it becomes a puzzle for other players.
What it does
Every day, players:
- Guess 3 community drawings using category hints and an on-screen letter keyboard.
- Draw 1 randomly assigned word to add to the shared pool.
- See results with XP, streaks, and a live countdown to the next daily reset.
Players also earn XP, build streaks, climb daily and all-time leaderboards, browse a public gallery of approved drawings, upvote their favorites, and report anything inappropriate.
Every submitted drawing goes through a lightweight moderation step: a mod reviews it in an in-app queue and approves it only if the sketch matches its word well enough to actually be guessable. Approved drawings flow into the pool for everyone; the rest never make it in. This keeps the guessing experience fair and the quality high as the community grows.
How I built it
The whole thing runs on Devvit Web. The client uses React + TypeScript, while the backend runs on Node/Hono with Redis as the only datastore.
Highlights:
- Drawings are stored as vector strokes, not images. This keeps them tiny, resolution independent, and removes the need for image hosting.
- Sessions are keyed by UTC date. Every Reddit post opens the same daily challenge, even older posts.
- A curated 114-word list doubles as the profanity filter, since words never come from free text.
- 111 hand-drawn starter drawings across 8 categories mean there's always something to guess on day one.
- A separate "pending" pool holds unapproved submissions, so the guess picker can never accidentally serve a drawing that hasn't been reviewed.
- Moderator status is verified server-side against Reddit's real moderator list, not a client flag, so the mod tools only appear for actual mods.
Challenges I ran into
- Redis has no Set type. I used hashes to enforce one vote and one report per user.
- Serverless retries. The final guess had to replay the stored result instead of failing after a retry.
- Seeding logic. Checking if the drawing pool was empty broke once players added their own drawings. A dedicated Redis marker fixed it.
- App-account posting on new subreddits. Creating posts as the app account was blocked until the app is approved, so I made the moderator "create post" action run as the user instead, which unblocked launching the game in a real community.
- Mobile layout. Fitting the canvas, keyboard, and controls on small screens took real device testing.
What I learned
Building on a serverless, Redis-only platform taught me to design around retries and simple key-value storage. I also learned that retention depends as much on architecture as features. The UTC date session model is what makes fresh daily content work consistently across Reddit's feed. And adding a moderation gate taught me that for a user-generated-content game, the quality of what goes into the pool matters just as much as the volume.
Built With
- devvit
- devvit-web
- hono
- node.js
- react
- redis
- tailwindcss
- typescript
- vite


Log in or sign up for Devpost to join the conversation.