-
-
REDACTED: a daily noir case no single reader can solve alone. Your dossier is censored differently from everyone else's.
-
CASE #17 · The Larchmont Fire. Most of the dossier is black bars — one unredacted line is dealt to you alone.
-
The comment thread becomes the evidence board; contradictions string in red where two facts can't both be true — computed, not moderated.
-
Four suspects, one authored truth. Stake an accusation before the verdict ceremony — filing early beats hoarding, by design.
-
Closed-world deduction over handcrafted, solvability-linted cases. Zero AI — the whole point in an anti-slop hackathon.
Inspiration
Two problems with mystery games on Reddit: spoilers ruin them the instant one person solves it, and reading the comments — usually a hazard — should be the whole point. We wanted a daily case that no single reader can solve alone, where every new person who opens the post adds information instead of consuming it. The image: a night-shift nurse with nine minutes of break whose one unredacted line turns out to be the fact four hundred armchair detectives have been fighting about since dawn.
What it does
Open the case folder and most of it is black bars. One peels back — that line is yours, dealt deterministically to you and (while pivot shards remain) to nobody else on the board yet. Below sits the evidence board: everything other players have filed, with contradictions strung in red where two shards can't both be true. You file your line with one tap — it posts as a typeset evidence card under your own username — the case meter ticks 61→63% and the suspect bars shift. You just changed the argument four hundred strangers were having. Stake an accusation before the verdict ceremony; early accusers and everyone whose filed card the verdict cites get ranked — filing early beats hoarding, by design. When the crowd is small, an hourly drip releases the highest-information unfiled shard so even a 30-member community closes every case.
How we built it
100% native Devvit, DOM-only client — no canvas, no engine — which is why the paper-and-typewriter dossier polishes to launch grade and runs flawlessly on phones. At compile time, truth is split from the public documents into server-only Redis hashes — the API cannot leak the killer by construction. Filing runs through consent-gated asUser comments with an onComment trigger reconciling thread and board; accusations lock in a watch/multi/exec escrow; case-drop, drip, and verdict are three idempotent scheduler crons. Every case is handcrafted — 3 fully-authored launch cases, each proven by a Monte-Carlo pass (1,000 random 60% deals all reach the truth) and compiled through a solvability linter (every suspect eliminable by ≥2 independent shard combinations). Zero AI-generated content anywhere — the content pipeline is a linter, not a language model. TypeScript + React 19, 269 passing tests at 100% coverage, CI solvability lint, CodeQL.
Challenges we ran into
- Guaranteeing every case is solvable — and solvable collaboratively. The linter enforces that no suspect is eliminable by a single shard, and the Monte-Carlo pass proves random partial-information deals still converge on the truth.
- Spoiler-proof by construction. Splitting truth from documents at compile time (server-only hashes) means the endpoint literally can't return the killer, even to a motivated scraper.
- Making a small crowd still close a case. The hourly highest-information drip keeps a 30-member community solvable without ever handing anyone the answer.
Accomplishments that we're proud of
- The judging traffic spike literally improves the game — every new reader adds information to the system.
- Comment-reading is the core skill, not a hazard, and spoilers are structurally impossible.
- A zero-AI content pipeline in a hackathon whose #1 anti-preference is "AI slop" — our cases pass a linter, not a prompt.
What we learned
The evidence board is really a view over a threaded, identity-bearing comment section physically attached to game state — asUser filing + onComment reconciliation + server-held truth is a shape only Devvit offers; remove Reddit and there's no port target because the thread is the game. We also verified every claimed API against the npm .d.ts and shipped on the required latest public API (Devvit 0.13.8).
What's next for REDACTED
The community Forge: player-authored cases through the same solvability linter + a mod approval queue. Plus a growing Cold Case Archive (closed cases replayable solo against their real solve timelines), branching multi-day cases, and reputation for detectives whose accusations consistently land.
Built With
- devvit
- github
- github-actions
- node.js
- react
- reddit-developer-platform
- redis
- typescript
- vite
- vitest
- yaml
Log in or sign up for Devpost to join the conversation.