Inspiration

Reddit is at its best when the community is the game. We loved the letter games that do well on the platform (LETTERSET, color puzzles) but noticed they mostly treat the comment thread as an afterthought. We wanted the opposite: a fast, tactile arcade where the comments literally control what everyone plays, and where a single post becomes a living, competitive space the whole subreddit shares. LexiDrop started from one question — "what if the comment section was the controller?" — and grew a game around it with different game style .

What it does

LexiDrop is a Devvit Web game that turns one post into a living word arcade.

  • Catch the word. A target word sits at the top; its letters fall as wooden tiles. Tap them in order as fast as you can. Combos shave time off your score; a wrong tap makes the whole board lurch faster for a few seconds, then eases back. Every run lands on a daily leaderboard.
  • Challenge anyone. Pick any word and a fall speed (Chill → Frantic), play it to set the bar, and publish — your challenge becomes its own post in the feed. Beat someone's record and the app announces it right in the comments.
  • The Community Word. Comment ?WORD (e.g. ?PLANET) to nominate the word everyone plays next. Nominations tally live, and every ten minutes the top pick goes live for the whole community, crediting whoever suggested it.

Challenges, records, and nominations all update in real time.

How we built it

Built entirely on Devvit Web:

  • Phaser renders the arcade play field (falling wooden letter tiles, combos, particle pops, screen shake, near-miss cues) with a lightweight WebAudio sound engine — no audio assets.
  • Hono on Devvit's serverless runtime powers the API.
  • Redis stores the daily leaderboard (sorted sets), player challenges, post↔challenge mapping, live-presence, and the comment-driven vote tally.
  • Realtime pushes leaderboard, challenge, and nomination updates to everyone viewing a post.
  • Triggers (onCommentCreate) turn ?word comments into votes; the Scheduler rotates the community word and posts the daily board.
  • A quiet DOM overlay (menu, HUD, challenges, community) sits over the canvas — a deliberate "restrained chrome, lively board" split. TypeScript throughout, with a shared client/server contract.

Challenges we ran into

  • A comment-driven game reads its own comments. Our announcement comments contained "?word", so the onCommentCreate trigger parsed the app's own posts as nominations and self-commented in a loop. We fixed it with defense-in-depth: ignore the app account, skip comments starting with our marker emoji, and never promote app-authored nominations.
  • context.postId isn't populated in triggers/scheduled jobs, so our realtime broadcasts silently dropped until we passed the post id explicitly.
  • Realtime channel names only allow letters/numbers/underscores — a colon in our channel name failed with a runtime error we only caught in the console.
  • Branded thing-IDs (t3_…) required the T3()/asTid() helpers to satisfy submitComment/submitCustomPost typing.
  • Cold start: the web view sometimes fired its first request before the server bridge was ready; we added transparent retry so launch never errors.

Accomplishments that we're proud of

  • The comment section is a genuine game controller — a novel, deeply Reddit-y loop that spans posts, comments, and the feed.
  • It feels like a real game: wooden tile aesthetic, combos, panic-speed, sound, and real loading/empty/error states, tuned for mobile.
  • Three interlocking retention loops (daily word, player challenges, community word) from a single, clean codebase.
  • Everything is live via Realtime, with graceful fallbacks so nothing ever hard-fails.

What we learned

  • How to compose Devvit's primitives — Redis, Realtime, Triggers, Scheduler, and post creation — into one coherent, event-driven experience.
  • That the highest-value idea on Reddit is often "use the comments," and that designing around triggers/scheduled jobs (not just request/response) unlocks genuinely community-native gameplay.
  • The importance of idempotency and self-loop guards once your app both writes and reads the same comment thread.

What's next for LexiDrop

  • A larger, server-side dictionary and themed daily words.
  • A dedicated leaderboard per community word and per challenge, plus seasons.
  • Cross-post notifications (a per-user realtime channel) so you hear the moment your challenge is beaten, wherever you are.
  • Streaks, cosmetic tile sets, and an accessibility pass for color and timing.

Built With

Share this project:

Updates