Inspiration

Pet rocks are the perfect Reddit pet: zero maintenance, infinite personality projection, and they cannot die. We crossed that joke with the games we actually retain for — idle merge ladders and old god-game "visit your friend's world" loops — and asked: what if the subreddit itself was the world? Every design decision flows from one rule: daily play should manufacture what the weekly community event consumes.

What it does

Every redditor gets a garden and a pet rock (stats fixed at creation — flavor, never power). From there:

  • Plant golems — free, unlimited, tier 1 matures in 10 real seconds.
  • Merge 3-of-a-kind up an eight-tier ladder: 10s → 60s → 3min → 10min → 45min → 3h → 12h → 48h, fuel value doubling each tier to a 128-fuel titan.
  • Neglect has consequences (but never punishment): forgotten golems go overripe, then feral — a tier-5 escapee becomes five goobers in the community pool.
  • Missions send your rock caving/foraging/patrolling and return procedurally written 2–3 sentence stories built for the comment section.
  • Visits: rescue a stranger's overripe crop for split credit (both parties get full value), bless their garden, judge it with canned ratings (🏆/🪨/😭).
  • Weekly boss: everything you grew gets hurled at a colossal goober on a rope-bridge platformer screen, with a damage leaderboard and a killing-blow race. Gold challenge tiers pay real Reddit flair.

How we built it

Devvit Web + Phaser 4 + Hono + platform Redis. The architecture law is compute-on-read: all time-driven state (growth, rot, missions, streaks) derives from timestamps at read time — no per-player ticks, no cron fleet, scales to any subreddit size for free. The full economy is pure functions with now as a parameter, which made two things possible: a test harness with time travel, and a balance simulation that runs 20,000 player-weeks through the real game math as a permanent regression test. All 33 art pieces came from one image model with a single style block and fixed seed — the entire visual identity cost about $1.

Challenges we ran into

  • The platform fights automation: expanded mode requires trusted input, synthetic clicks never reach the Phaser canvas, webviews cache API GETs, and stale iframes survive hot-deploys. We built a two-actor verification protocol (on-screen build tags, self-narrating console logs, Playwright harnesses with stubbed APIs) so every change proves itself in pixels.
  • The boss shipped unkillable. The balance sim caught it: damage/HP ratio 0.30. Simulation-tuned to die 65% of weeks — almost-fail tension, every week.
  • The merge economy landed late and inflated fuel output ~21×. Every test suite, the boss HP curve, and the visit rules had to be rebuilt around it — including a griefing vector we caught where "blessing" a neighbor's fast-tier golem would rot their merge material into stealable range.
  • ISO week boundaries: 7×24h from Monday 00:01 is next Monday. Twice.

Accomplishments that we're proud of

  • 111 automated tests, including a full compressed-week E2E where three simulated personalities live seven days and the boss's HP reconciles to the exact damage ledger.
  • A first session with the entire payoff loop in it: plant → 10 seconds → harvest → merge, before the first real wait.
  • A cooperative-only social economy: visiting is profitable for both sides and structurally can't be extractive.
  • Zero moderation surface: ratings are canned, reports are generated, names are filtered.

What we learned

Tune by simulation, not vibes — every balance number we guessed was wrong, some catastrophically. Compute-on-read turns "idle game on someone else's infrastructure" from scary to trivial. And economies are load-bearing everywhere: changing crop timers cascaded into visit rules, blessing mechanics, boss HP, and the onboarding curve. Write everything down; re-audit, don't append.

What's next for Pet Rock World

  • Faction wars: opt-in ephemeral factions (Igneous vs Sedimentary), attacker-favored async knockouts — your rock gets tipped over for a few hours, never dies.
  • Arena: deterministic physics battles with daily modifiers, replayed client-side.
  • A drag-and-drop merge board, seasonal boss skins voted by the community, and chasing Reddit Developer Funds engagement milestones.

Built With

Share this project:

Updates

Submission history