Inspiration

I wanted the opposite of a game that asks you to wait. No queue, no download, no "your turn." You open a Reddit post and you find other word game lovers who you can compete against.

What it does

Word Maestro turns a Reddit post into a live word game. Every 90 seconds a new grid of 16 letter tiles goes up. Everyone viewing plays the exact same board and races to spell as many valid words as they can in 60 seconds. Longer words score a multiplier. I use the scrabble letter point values for higher scores. When the clock stops you see the round's standings and the top words anyone found, then a fresh grid loads and it starts again. To build retention

  • A fresh game post goes up every day, so there's always a new playable card in the feed. Because the game's state is global, every post is the same live game, so a new post is just another door into the same room rather than a split crowd.
  • A daily Champions post tags the winners by u/handle. Getting named pings you a notification and pulls you back to defend your spot, and it calls out when someone new takes the top.
  • An all-time leaderboard never resets, so there's a reason to keep playing past a single round. You're either climbing or defending #1.

How we built it

It's a Devvit Web app. The client is a single vanilla-JS webview, no framework, just the DOM, so it loads fast inside Reddit's mobile and desktop apps. The server is the one source of truth for the clock in that every phase (lobby, play, results) is a pure function of a single start timestamp in Redis, so every device agrees on the current second without any ticking process or per-second network chatter. Scores, presence and the live leaderboard run over Redis sorted sets and Devvit realtime. A daily cron posts the champions and keeps a pinned all-time board in sync.

Challenges we ran into

Keeping a real-time game honest without a game loop. Devvit is serverless, there's no process ticking every second, so we made the clock positional i.e. the phase is derived from one timestamp, and the first request past a deadline rolls the round over under an atomic lock. That one decision removed a whole category of desync bugs. The other hard part was making an empty room feel alive, which we solved with session bots that fill a quiet lobby and step aside the moment real players show up.

What we learned

Serverless changes how you think about time. Our first instinct was to run a timer. The design that actually worked was to store one number and compute everything else from it. Less moving state, fewer bugs and it holds up for any number of viewers at once.

What's next

Weekly and monthly champion boards, a personal-stats page, and word-length challenges where only 5+ letter words count.

Built With

Share this project:

Updates

Submission history