Inspiration
Tamagotchis and Wordle both work because they ask for a little bit of you every day, not a lot of you once. We wanted a game that only makes sense on Reddit: not a leaderboard bolted onto a subreddit, but something that is of the subreddit, an entity whose entire identity is the sum of that community's real behavior, with no two subreddits ever producing the same creature.
What it does
Every subreddit that installs The Nest gets one persistent creature, rendered live in Phaser. Members spend a small, rationed set of daily actions (feed, pet, play), and overnight a scheduled server job scores the whole community's aggregate care and, if it clears a threshold, mutates the creature deterministically, never a random glitch, always reproducible from the same inputs. A "why did it mutate" panel breaks the score down transparently so it's never a black box. When a mutation happens, the community names what it became by replying to a native Reddit comment thread; the highest-voted reply wins, but only after holding the lead through the final hour of the naming window, so a late vote swing can't flip the result at the wire.
How we built it
Devvit Web: a Hono server and a Phaser 4 client built with Vite, talking to Redis for all persistent state. Care actions, mood accumulation, and identity are all server-authoritative, the client only ever sends an action type, never its own caps or user id. The mutation engine is a pure, seeded function (subreddit + date) so it's independently testable and inspectable. Naming runs entirely through Reddit's own comment and voting primitives rather than a custom UI. The creature itself is composited live from a small, curated, art-directed trait space (base form, tint, pattern, appendage), layered and tinted in Phaser rather than swapped between static images.
Challenges we ran into
Devvit's realtime channel names turned out to only allow letters, numbers, and underscores; a channel name with a hyphen threw a hard runtime error that silently aborted our main scene's startup before anything rendered, producing a blank screen with zero console noise pointing at the real cause until we went digging through the client bundle. We also hit a structural timing edge case: a freshly created Nest can't mutate on its first day by design (a minimum-days-since-last-mutation gate prevents rapid-fire mutations), which meant validating the mutation path end-to-end needed a deliberate, temporary test affordance rather than just waiting.
Accomplishments that we're proud of
The mutation engine is fully deterministic and auditable, not vibes-based RNG, every mutation can be explained after the fact from its inputs. The naming flow is a genuine, structural use of native Reddit behavior (comments and votes), not a form bolted on top. And the whole loop, rationing, mood, mutation, and naming, was validated live with real accounts on a real subreddit before submission.
What we learned
How much of Devvit's runtime behavior (realtime channel naming, scheduler job registration) only becomes visible once you actually deploy and click through it live, versus what the docs alone will tell you. Also, how much a server-authoritative design (never trusting the client for caps or identity) simplifies reasoning about fairness once multiple real users are actually hitting the same subreddit concurrently.
What's next for The Nest
Cross-subreddit "offspring" adoption, timed community playdate events between two subreddits' creatures, and short flavor text generated per mutation to give each new form a bit of personality beyond its traits.
Built With
- css
- devvit
- devvit-web
- eslint
- hono
- html
- javascript
- node.js
- phaser.js
- redis
- typescript
- vite
- vitest
Log in or sign up for Devpost to join the conversation.