Inspiration
Three things collided in my head. The quiet magic of r/place, where a million strangers shared one canvas. The messages in Dark Souls, where a short note from a stranger feels more human than any chat box. And the daily ritual of Wordle, which proved that scarcity is a feature, not a bug. INKWELL pours all of that into the most familiar canvas there is: a ruled notebook page, doodled on by a whole community, with just enough ink to make every step matter.
What it does
Every day at midnight UTC, INKWELL opens a new procedurally generated page as a fresh Reddit post. The entire community draws on the same page, and every tile anyone doodles appears for everyone, live. Each doodler carries sixty steps of ink per day. Hidden under the doodles are seven stickers: the first player to step on one gets to name it, permanently, and the find is credited in the post's comments. Players can leave curated two part notes to guide the next doodler, or to lie to them. At the bottom of every page waits the Heart. If anyone reaches it before midnight, the whole day is collectively won. Either way, the finished page stays in the feed forever, and the subreddit slowly becomes a zine of everything the community made together. Streaks and lifetime ranks reward the people who come back every day.
How I built it
The game runs on Devvit Web. The server is a Hono app that keeps all shared state in Redis, pushes live map updates through the realtime channel, and uses the scheduler for the midnight rollover. The client renders the page with Phaser 4, while the interface is a DOM layer so typography stays crisp at any zoom. Everything is server authoritative: sticker and Heart positions are derived from a seed on the server and never sent to a client before discovery, wall data only travels where it has been revealed, and every single movement step is validated on the server. Map generation uses deterministic cellular automata with a guaranteed path from the entrance to the Heart, covered by an automated test suite. My favorite constraint: the project ships zero binary assets. Every texture, from the ruled paper to the stickers and the Heart, is synthesized procedurally on canvas at load time.
Challenges I ran into
The first challenge was fairness. In early designs, fast players could hoover up the whole map alone. The sixty step ink budget, probing as a paid action, and sticker bonuses turned it into something closer to a relay race between strangers. The second challenge was trust: with a shared world, the server has to assume every client lies, so every rule lives server side and the client is only ever a pen and a renderer. And late in development I learned the hard way how different the game looks on high density displays, which led to a rendering rework so the ink stays crisp on every phone.
Accomplishments that I'm proud of
The moment your doodles show up on someone else's screen never stops feeling like magic to me. I am proud that sticker names become permanent community lore, written into the post's comments by the game itself, and that finished pages pile up in the feed like a zine the community wrote together. On the technical side, I am proud of a complete, strictly typed codebase with tested deterministic map generation, a server that never trusts the client, and a game whose entire look is drawn in code, without a single image file in the project. And the best moment of all: watching the first real players find a sticker, name it, and leave a note for the next stranger.
What I've learned
Retention does not need dark patterns. A hard daily limit, a shared goal and a permanent record of yesterday are enough to make people want tomorrow. I also learned an enormous amount about building for Reddit specifically: posts, comments and community identity are not just a distribution channel, they are game mechanics.
What's next for Inkwell
Weekly jumbo pages, sticker albums per subreddit, seasonal paper themes, and page records: fastest Heart, most tiles in a day, longest streak. I would also like to salt the map seed with a server secret so even readers of the source code can never spoil a page.
Built With
- canvas
- devvit
- hono
- node.js
- phaser.js
- redis
- typescript
- vite

Log in or sign up for Devpost to join the conversation.