Inspiration

Most "community" games are a thousand people playing alone in the same post, and most "daily" games close the loop the instant you play. We wanted a game where the board is the community's collective psychology — where a single secret choice you make tonight is something the whole subreddit has to live with tomorrow. The starting image: a nine-year lurker who has never commented casts one secret BETRAY that burns the entire pot, then reads three hundred furious comments knowing nobody will ever suspect her.

What it does

Every night The Commons posts one dilemma — e.g. THE BLACKOUT POT: if 70%+ FEED the pot every stake doubles; HOARDERS take 3× — but if hoarders exceed 30%, the pot burns for everyone. You commit one sealed choice. A live ticker shows how many souls have committed and how big the pot is — but never the split, because the split doesn't exist anywhere outside a server-held hash until midnight. Then one idempotent transaction settles everyone's fate and the morning Reckoning replays what the subreddit did to itself: the outcome graph, your personal result, surviving streaks, and this week's Saints and Serpents — worn as actual subreddit flair. You cannot learn what happened to you without coming back tomorrow.

How we built it

100% native Devvit Web (Reddit's Developer Platform): a Hono server + a framework-free webview. Sealed commits live in server-only Redis hashes — the API is shaped so a pre-settle leak is impossible, not merely avoided. The midnight settle is a single watch/multi/exec pass that is provably idempotent (kill it mid-run and re-running produces byte-identical outcomes); streak insurance and reputation decay run inside the same transaction. A realtime channel drives the live souls · pot ticker. Five rotating dilemma archetypes (Public Pot, Stag Hunt, Chicken, Lowest-Unique-Bid, Exact-N Heist) are parameterized payoff structures, not authored content — infinite variety at zero generation cost and zero AI anywhere. TypeScript, 222 passing tests at 100% coverage including property-based payoff tests + a 10k-commit settle benchmark (p95 ~50ms), CI + CodeQL on GitHub Actions.

Challenges we ran into

  • Making a leak structurally impossible. It isn't enough to not show the split — we shaped the server API so no endpoint can return pre-settle aggregate state at all.
  • An idempotent midnight settle. The whole community's fate resolves in one transaction; we made it provably re-runnable (byte-identical on retry) and rehearsed a Force-Settle failure drill.
  • Scale-free drama. Percent-threshold payoffs mean the tension is identical at 8 players or 8,000 — so a judging room feels like a big subreddit, and small communities still get real Reckonings.

Accomplishments that we're proud of

  • Lurkers become full participants — a single sealed tap is the whole move, zero public exposure, giving Reddit's largest population real agency.
  • Consequences you wear: Saint/Serpent flair puts the outcome inside the community where the betrayal happened.
  • Drama that's produced by the mechanic, not requested by it — the comment section becomes propaganda before the deadline and accusations after the reveal, unprompted.

What we learned

A community's shared nightly rhythm is a game board nothing off-Reddit can replicate — server-held sealed state + a resident crowd + wearable flair consequences is a combination unique to Devvit. We also learned to verify platform APIs against the npm .d.ts (flair templates, realtime) rather than the docs site, and shipped on the required latest public API (Devvit 0.13.8).

What's next for The Commons

The Forge: community-authored dilemmas via parameter sliders + a filtered 140-char flavor line, mod-approved and author-credited. Beyond that: per-subreddit economies, season-long reputation arcs, and alliance mechanics that let factions coordinate (or betray) across nights.

Built With

Share this project:

Updates

Submission history