What it is
Every day just after midnight Eastern, r/Cluedle gets a new post with a fresh murder mystery. You read the newspaper story, study the suspects, motives, weapons and evidence, and name the killer.
How to play
- Open today's post and tap Play.
- Read the story and the evidence. Hold a motive or weapon to cross it out, and use the notepad for your theories.
- Accuse someone: pick who did it, why, and how. Each accusation tells you how many of the three you got right, never which.
- Every wrong accusation pins a new clue to the board. You get five accusations before the case goes cold.
Two extras raise your rank:
- One suspect is lying. You get one LIAR stamp per case, and it doesn't cost an accusation. Stamp the right suspect and say what really happened.
- One scrap is written in code. Drag the two strips of the decoder to crack it. The key is hidden in the story. You get three tries, and each wrong one smudges more of the message.
The result shows the full solution, the liar's real story, the decoded message and your rank, from Amateur Sleuth up to Basically Sherlock. Then you see how everyone else did.
Two ways to work the case
- Corkboard: pan around the whole board and tie red string between cards.
- Case file: flip through tabs, which suits a phone.
Players pick one and can switch any time.
Reddit features
- Daily posts. A scheduled job posts the next numbered case each day. Mods can also post one from the subreddit menu.
- Comments. The result screen links to the post's comments, with "Brag in the comments" if you solved it and "Argue in the comments" if you didn't.
- Community results. A chart of how many detectives solved it in each number of accusations, plus how many caught the liar and cracked the code.
- Streaks and stats. Games played, the share of cases closed, and your current streak.
- Share. A short text result that doesn't give away the answer.
- Archive. Older posts stay playable but don't count toward your streak.
What changed from the original
Cluedle started as a single-page web game (https://szarroug3.github.io/cluedle/). For this hackathon I rebuilt it as a Devvit app:
- The game now runs on the server. The answers, the liar and the coded message stay there until the case is over, and the server checks every move, so nobody can read the answer from the page.
- Daily posts, streaks and stats are saved per Reddit player in Redis, and the community results are new.
- The case-file view is new, so the game works on a phone down to 320px wide.
- The decoder strips can be dragged.
- Light and dark themes follow Reddit's setting.
- The comments button and the inline launch screen in the feed are new.
How it's built
- Devvit Web interactive post with an inline launch screen and an expanded game view.
- TypeScript client and server. Redis stores each player's progress, stats and streak, and the community counts. Moves are saved with compare-and-set, so two open tabs can't overwrite each other.
- Cases live in a JSON file that is synced from the original Cluedle by a daily GitHub Action.
- Works on phone and desktop, by keyboard, and with reduced motion.
Built With
- devvit
- esbuild
- redis
- typescript