Inspiration
I fell in love with the quiet tension of Stacklands, the way a whole settlement emerges from dragging one card onto another. I'd been building Planker, a full 30-day survival deck-builder in Godot set after The Fracture , an event that tore the boundary between dimensional planes and left the world silent, broken, and watched. Beings called The Architects measure not just whether you survive, but how.
Then Reddit's Developer Platform made me ask a different question: what does Planker look like as a shared, daily, community ritual instead of a solo campaign? The answer became Planker · Daily Rift, same world, same hand-drawn cards, rebuilt from scratch to live inside a Reddit post.
What it does
Planker · Daily Rift is a daily card-stacking survival challenge that runs natively inside a Reddit post.
Every UTC day, a new Rift opens deterministically seeded from the date, so every Keeper on Reddit faces the exact same puzzle: same difficulty stars, same threat level, same starting cards. You get one prep phase to get ready before the night comes:
- Drag Survivors onto nodes to work them: Ruins yield Salvage, Forests yield Timber, Fields yield Rations.
- Stack resources to build defenses: Timber + Salvage → Wall (⛨3), Timber + Wall → Watchtower (⛨7), Salvage + Salvage → Medkit.
- Feed everyone; each survivor saved needs a Ration at dawn.
- Mid-run, the game pauses for A CHOICE, a moral dilemma ("A wounded stranger reaches the gate at dusk, begging for shelter"). Mercy earns ✦Light, pragmatism earns ✧Dark, your Resonance.
- Then you Face the Rift: if your defence holds against the threat, the settlement stands.
And the community layer is the point:
- Daily leaderboards and play streaks, one run per day, ranked against every Keeper on the subreddit.
- Community-authored dilemmas: players write their own moral choices, and they surface in other players' runs.
- The Settlement: every survivor saved by anyone feeds one shared counter that upgrades the community's home through six tiers from The Bunker to The Haven.
- A scheduled job posts each day's Rift to the subreddit automatically; the feed itself is the daily reminder to play.
How we built it
- Two builds, one game. Planker began as a Godot 4.5 prototype (the full 30-day campaign, targeting itch.io). For Reddit, we rebuilt it from scratch as a TypeScript + DOM/SVG game with the same hand-drawn card identity, redrawn as scalable SVG line-art glyphs, with zero engine payload so it loads instantly inside a post.
- Platform: A Devvit (Reddit Developer Platform) web-view app. The backend is a TypeScript server on Hono with clean routes for the API, menus, forms, triggers, and scheduled jobs.
- Deterministic daily challenge: each day's board is generated from a seeded PRNG hashed from the UTC date, no stored level data, and everyone plays the same Rift.
- Shared rules, server-checked score: the night-resolution and scoring logic is a pure module shared by client and server. The client previews your fate, and the server recomputes the score from your run stats and takes the minimum, so leaderboard entries can't be forged.
- State & community: Devvit Redis powers daily leaderboards (sorted sets), per-player streaks, the community Settlement counter, and the pool of player-authored dilemmas. A scheduler cron (daily-rift) auto-submits each day's post.
- Input: pointer-capture dragging tuned to be reliable inside the Reddit web view, on desktop and mobile alike.
Challenges we ran into
- Killing our own engine. The obvious plan was to embed Plunker's Godot HTML5 export in the web view. Load size and sandbox friction inside a Reddit post argued otherwise, so we made the hard call to rebuild the game in DOM/SVG, keeping the art identity while cutting the payload to almost nothing. Rebuilding felt like a detour; it was actually the unlock.
- Drag-and-drop inside Reddit's web view. Getting card dragging to feel right across the desktop mouse and mobile touch inside an embedded context took a pointer-capture approach and a tuned overlap threshold (~40%) to stop misfires.
- Trust on a leaderboard. Any client-reported score is a lie waiting to happen. Sharing the exact resolution math between client and server — and letting the server re-derive the score — made cheating pointless without hurting the instant client feel.
- Passing Reddit's app review (custom posts, scheduling, moderator-level capabilities), 18 uploaded versions before the approved build.
Accomplishments that we're proud of
- A complete game rebuilt for Reddit, not just hosted on it, approved on the App Directory and playable right now on r/Plankergame.
- The daily ritual works end to end: a cron posts the day's Rift, everyone faces the same seeded puzzle, streaks and leaderboards update, and the shared Settlement climbs toward its next tier.
- Players write the morality. Community-authored dilemmas surfacing in strangers' runs turn the Resonance system into UGC.
- Server-authoritative scoring with zero perceived latency, via one pure rules module shared by both sides.
- The full arc ships: prep, harvest, build, choose, face the night "THE SETTLEMENT STOOD" never stops feeling earned.
What we learned
- The engine is not the game. Rebuilding Planker without Godot clarified what it actually is: rules, choices, and a hand-drawn identity, all of which survived the port into plain DOM and SVG.
- Determinism is a multiplayer feature. Seeding the day from the date gives every player the same challenge with no netcode, and no stored state, the leaderboard makes it feel multiplayer.
- Never trust the client and how cheap it is not to, when the rules live in one shared pure function.
- Build for the feed. On Reddit, retention isn't a push notification, it's tomorrow's post showing up where the community already lives.
What's next for planker
- Bring the full campaign home: the 30-day Planker campaign (with AXIOM, the Lattice Sentinel, and three endings) as a companion experience to the Daily Rift.
- Deeper community judgment: evolve dilemmas into subreddit-wide "judgment days," where the collective Resonance of every Keeper shapes a shared outcome.
- Comment-driven events: let Redditors vote in the comments on dilemmas that alter live runs.
- Richer rivalry: seasonal leaderboard resets, streak milestones with cosmetic card backs, more rift types and recipes.
- Polish & accessibility: touch-target refinement and colorblind-safe card cues.
Built With
- claude
- devvit
- gdscript
- godot
- hono
- html5
- javascript
- node.js
- reddit-developer-platform
- redis
- svg
- typescript
- vite
Log in or sign up for Devpost to join the conversation.