← Blog Posts
July 13, 2026 5 min read Building with AI Claude Code

Building Reply All: A Workplace RPG on a Stack That Costs Nothing

I built a game. It’s called Reply All, it’s free, and it lives on this site.

You play a new hire at a company that is never quite named. You pick a department, you meet your coworkers, and every scene hands you a choice. Some choices are safe. Some are dice rolls against your Cred, your Political Capital, your Sanity, or how much coffee you’ve had. Storylines build toward crossroads: take the promotion or walk away, protect a friend or protect yourself, forward the email or let the thread die. There are 14 endings. Most people find one and immediately want a different one.

That’s the pitch. The more interesting question is why it exists.

Why I Built It

Current, my iOS app, taught me that I could ship something real in a domain I’d never touched. But an iOS app has a well-worn path: Xcode, Swift, App Store review. I wanted a different kind of test. Could I take the stack this site already runs on, a static Astro site on Cloudflare Pages, and stretch it into something it was never meant to be? A game with accounts, saved progress, dice mechanics, and a daily mode, without adding a server, a framework, or a hosting bill?

The honest answer going in was I didn’t know. That was the point. I’ve spent years shipping software inside large platforms, where the boundaries are drawn for you. Building with Claude Code, the boundary is somewhere else, and I wanted to find it.

I never hit it. The game shipped.

What’s Under the Hood

The whole thing runs on the free tiers of services I was already using:

  • The game engine is client-side TypeScript. No game framework. Scenarios are markdown files with structured frontmatter, compiled at build time into a content pool. The engine selects what you see next based on your stats, your flags, your relationships, and which storyline you’re in the middle of. Writing a new scene means writing a markdown file.
  • Sign-in is Google OAuth, hand-rolled on Cloudflare Pages Functions. No auth provider, no monthly fee. Sessions are signed cookies. Saves live in D1, Cloudflare’s SQLite database.
  • Guest mode was a design requirement, not a fallback. Because the engine runs entirely in the browser, you can play a full run without an account. Only saving progress needs one. The architecture made the generous choice the easy choice.
  • The daily mode is a seeded random number generator. Everyone who plays Today’s Shift gets the same department and the same scenes in the same order, Wordle-style, so the only variable is what you chose. Getting a deterministic run to survive a page reload meant persisting the generator’s state in the save itself. That one took some thinking.

None of this is exotic. That’s what I want you to notice. It’s a static site host, a serverless function, and a small database, the same ingredients as a contact form. The distance between a contact form and a persistent multiplayer-adjacent game turned out to be design decisions, not infrastructure.

Where Claude Fit

Claude Code wrote a lot of this code. I want to be precise about what that means, because the framing matters.

Every architectural call was mine. Client-side engine so guests can play. D1 over anything heavier. Markdown as the content format so writing scenes stays fun. Claude Code executed against those decisions fast enough that I could afford to be wrong, notice it, and change course in the same sitting.

The clearest example: playtesting revealed the game ended too fast. Storyline flags set two beats into an arc could trigger an ending on the very next scene. The fix wasn’t code, it was a design distinction between endings that stop your run and completions that close a chapter and pivot you into a new storyline. Once I could name that distinction, implementing it across a hundred content files and the engine took an afternoon. Finding it took playing my own game and admitting it wasn’t working.

That’s the actual shape of building with AI right now. The judgment doesn’t get automated. The distance between judgment and running software collapses.

Why You Should Care

Two reasons, depending on who you are.

If you just want something fun: play it. It’s free, it works on your phone, a run takes about fifteen minutes, and no account is required. There’s a daily shift if you like streaks and an archive of endings if you like completing things.

If you build things: the barrier you think is stopping you is probably not real. A year ago, “workplace RPG with auth, saves, dice, and a daily mode” would have read to me as a team-sized project or a pile of SaaS subscriptions. It’s neither. It’s one person, a clear set of design decisions, a stack that costs nothing, and a tool that turns decisions into working software fast enough to keep up with your own second thoughts.

The constraint has moved. It’s no longer what you can build. It’s whether you know what you want.