Inspiration

Daily puzzle games like Wordle work because you get one shot per day. Reddit has huge communities around true crime and social deduction. I combined the two - a daily mystery game that runs inside Reddit posts.

What it does

A new mystery every day. Four suspects, each with an alibi. Players read the crime scene, check the evidence, and pick the liar. One guess only. After that, they see the answer, their stats, and how everyone else voted. Players can also submit their own mysteries.

How we built it

  • React + TypeScript frontend, bundled with Vite
  • Tailwind CSS v4 with custom Reddit-themed tokens
  • Express backend on Devvit's server runtime
  • Redis for stats, streaks, and puzzle storage
  • Devvit scheduler for daily puzzle rotation
  • UGC submission flow with content filtering and admin review

Challenges we ran into

  • Devvit's Redis doesn't have standard methods like lpop — I had to write my own list operations
  • Tailwind v4 silently ignores tailwind.config.js — config has to go in CSS @theme {} blocks instead
  • Clipboard API doesn't work in Devvit webviews — I added fallbacks (native share, execCommand, prompt)
  • Devvit webviews are narrow — I had to redesign layouts to fit without scrolling

Accomplishments that we're proud of

  • Runs entirely inside Reddit — no external links, no downloads, no auth flows
  • Rethemed 15+ components by changing 2 CSS files (token values only, zero class changes)
  • Players can submit puzzles, so the game sustains itself
  • The one-guess mechanic makes every clue matter

What we learned

  • Devvit webviews are not browsers — clipboard, viewport, and API access all behave differently
  • A good CSS token system makes full redesigns trivial
  • Daily games need to get players into gameplay within 3 taps or they leave

What's next for Daily Alibi

  • AI-generated mysteries with Claude
  • Easy/medium/hard difficulty tiers
  • Per-subreddit leaderboards
  • Image-based evidence
  • Multiplayer group solving
  • Seasonal mystery series

Built With

Share this project:

Updates