Token-mon is a 100,000-line TypeScript application with 71 collectible creatures, 8 boss battles, 50+ arcade mini-games, visual-novel cutscenes, a 29+ track original soundtrack, and a full server with PostgreSQL persistence. It was built in 8 months by one developer, vibe coding the entire project with Claude Code.
This is not a hype piece about AI replacing developers. This is the honest, detailed story of what vibe coding actually looks like at scale — what works, what does not, and what the human still has to bring to the table.
What is Vibe Coding?
Vibe coding is a development approach where you describe what you want in natural language and an AI coding assistant writes the implementation. You guide the direction, review the output, test the result, and iterate. The AI handles the syntax, boilerplate, and implementation details. You handle the vision, taste, and judgment calls.
With Claude Code, the workflow looked like this: describe a feature or problem in plain English, watch Claude write the code, test it, give feedback, iterate. Sometimes a feature would land perfectly on the first try. Sometimes it would take 15 rounds of refinement. The key insight is that vibe coding is not autopilot — it is a collaboration where the human's creative direction is the irreplaceable ingredient.
CLAUDE.md: The Project's Brain
The single most important file in the entire project is not a component or a utility. It is CLAUDE.md — a persistent context file checked into the repo that tells Claude everything about Token-mon: architecture decisions, game rules, file structure, naming conventions, what has been built, what to avoid.
CLAUDE.md grew organically over 8 months. Every time Claude made a mistake because it lacked context, I added that context to the file. Every architectural decision, every game balance rule, every "do not do X because Y" — it all went into CLAUDE.md. By the end, it was a comprehensive knowledge base that made Claude as productive on month 8 as it was on month 1.
This is the secret to vibe coding at scale: the context file is your codebase's memory. Without it, every conversation starts from zero and the AI makes the same mistakes repeatedly. With it, Claude understands your project's patterns and conventions immediately.
The Family as the Development Loop
My two sons (ages 12 and 16) were not just playtesters. They were the development loop itself. Here is how a typical evening worked:
- I would describe a new feature to Claude Code and watch it implement
- The boys would test it immediately on their devices
- "Dad, the boss is way too easy" or "this mini-game lags on my phone" or "why can't I see my team bonuses?"
- I would feed their feedback to Claude and iterate in real time
- They would test again — sometimes within minutes of the bug report
This loop was insanely fast. Traditional game development has weeks between build-test-iterate cycles. We had minutes. My 12-year-old would find a balance issue, I would fix it through Claude, and he would test the fix before his hot chocolate got cold.
My wife shaped the emotional core. She was the one who said "the cutscenes need to make people feel something, not just deliver plot." That feedback drove the visual-novel system, the character portraits, the typewriter text speed (20ms per character — she tested different speeds until one "felt right"), and the moments where bosses reveal the truth about Greffe's parents.
What Claude Code Did Well
Architecture: Claude designed the entire client-server architecture — React frontend with TanStack Query, Express backend with Drizzle ORM, PostgreSQL for persistence, session-based auth. The structure is clean and maintainable.
Battle System: The slot-reel combat system — damage calculations, reel match probabilities, energy management, team bonuses, jackpot mechanics, boss AI — was implemented almost entirely through natural language descriptions. I would say "the match chance should be 30% base plus 5% per energy spent" and Claude would implement the formula, the UI animations, the suspense timing on the third reel, and the screen shake on a triple match.
Cutscene Engine: The visual-novel cutscene system handles character portraits, typewriter text, visual overlays, background themes, and dialogue branching. Claude built it from a description of what I wanted the player to experience, not from a technical spec.
Mini-Games: Seven different arcade mini-games (Snake, Pac-Man, Rhythm, Memory, Runner, Tower Stack, Circuit Tetris), each running at 60fps with touch controls. These were described at a high level and Claude handled the game loop, collision detection, scoring, and mobile optimization.
What the Human Had to Do
Creative direction: No amount of AI can decide that the game should feel like walking through a neon-lit arcade at 2 AM. The cyberpunk aesthetic, the metal-type system, the slot-reel concept, the story about a kid searching for parents inside a sentient AI — these were human decisions that shaped everything else.
Taste and curation: Leonardo AI generated sprites, but choosing which of 15 generations actually captures the right vibe is a human judgment call. Suno AI composed music, but deciding that the Industrial District needs grinding metal textures while the Casino District needs jazzy neon vibes — that is creative direction, not automation.
Game feel: The difference between a good game and a great game lives in details that AI does not prioritize on its own. The screen shake duration on a triple match. The timing of the suspense reel slowdown. The copper glow color on the starter selection screen. The decision that cutscene text should be 20ms per character, not 30ms. These micro-decisions are invisible individually but collectively they are everything.
Quality control: Claude generates code fast, but it does not always generate the right code the first time. Catching edge cases, identifying performance issues on mobile, noticing that a boss is too easy or a mini-game is too hard — these require human testing and judgment.
The AI Toolkit Beyond Code
Leonardo AI generated all 417 sprites — creatures, bosses, buildings, backgrounds, UI elements. Some sprites needed 15+ generations. Others were perfect on the first try. The art direction was mine; the execution was AI.
Suno AI composed the 29+ track original soundtrack. Each district, boss battle, shop, and mini-game has its own music. The variety — industrial grunge, casino jazz, mystic ambience, battle metal — is what makes Metallica City feel alive.
Ludo AI generated sprite sheets from static PNGs for walk cycle animations. Replit provided the development environment, hosting, and deployment.
By the Numbers
- 100,000+ lines of TypeScript across 219 source files
- 148 React components
- 417 PNG sprites
- 379 audio files
- 71 unique Token-mon creatures
- 8 boss battles
- 50+ playable arcade machines
- 29+ original soundtrack tracks
- 15 NPC quests across 6 shops
- 8 months from concept to launch
- 85%+ of code written by Claude Code
- 1 developer, 1 creative director, 2 playtester-consultants
Lessons for Other Vibe Coders
CLAUDE.md is non-negotiable. If you are building anything beyond a weekend project, maintain a persistent context file. Update it constantly. It is the difference between an AI that knows your project and one that guesses.
AI does not replace creative vision. It amplifies it. Without a clear idea of what Token-mon should feel like, no amount of code generation would have produced something worth playing. The tools gave us speed. The family gave us soul.
Playtest with real humans early and often. My sons caught issues that no amount of AI review would find. "This boss is boring" is feedback that only comes from a human holding a phone and trying to have fun.
Embrace the iteration speed. The superpower of vibe coding is not that AI writes perfect code. It is that the describe-implement-test loop takes minutes instead of hours. Use that speed to iterate relentlessly on game feel, not just features.
If you want to see what came out of those 8 months, come explore Metallica City. And if you are building your own game with AI — good luck. The tools are ready. The question is whether your vision is clear enough to guide them.