09

How This Was Built

Meta case study: building Vibe Voyager with Claude Code and agent teams.

How This Was Built

View the Source Code on GitHub

Full source code, build playbook, and hackathon quick-reference guide. The README walks through the entire multi-agent development process.

GitHub

Vibe Voyager was built entirely with Claude Code (Opus 4.6) using subagent-driven development. Every line of code, every component, every game mechanic was written by AI agents orchestrated from a single terminal. No copy-pasting from tutorials, no manual scaffolding — just a human director and a fleet of specialized agents working in parallel.

Tip

This entire website is an exercise in agentic development — built by the same practices it teaches.

What you are reading right now is a meta case study: a game about vibe coding that was itself vibe-coded. The build process followed a structured pipeline of brainstorming, planning, parallel execution, and review — the exact workflow taught throughout the game's missions. This section documents how it all came together.

The Stack

The technology choices were driven by two constraints: agents need to parallelize well, and the game runs entirely client-side with no backend. React components are naturally isolated by file, making them ideal for parallel agent work — each agent writes to its own component file with zero merge conflicts.

TechnologyVersionRole
Next.js15App framework (App Router, file-based routing)
React19UI rendering
TypeScript5+Type safety across all files
Tailwind CSSv4Styling (CSS-first @theme config)
Motion12Spring animations and page transitions
HTML5 Canvas-Star map galaxy rendering
Howler.js2.xAmbient audio and SFX sprites
localStorage-Game save state (no backend needed)
Info

Why Next.js over a game engine like Unity or Phaser? Agents parallelize React components far better than monolithic game scenes. Each component is a separate file with clear props — perfect for independent agent work.

Timeline

The entire game was built in a single ~66-minute coding session on the night of March 7-8, 2026. Brainstorming and planning happened earlier that day — exploring the design space, researching the AI tools landscape, writing a detailed design document, and creating a 9-phase implementation plan with 39 discrete tasks. At 11:58 PM, the first commit landed. By 1:00 AM, 14,400+ lines of production TypeScript were written, committed, and type-checked. Polish followed the next morning.

Build Phases

The implementation plan decomposed the entire project into 8 build phases plus deployment. Each phase was designed so that its tasks could run in parallel — multiple agents writing to different files simultaneously, with the main thread handling git commits after each wave completed. The timestamps below come directly from the git log.

TimePhaseAgentsDurationKey Output
23:581. Scaffolding1 (sequential)7 minNext.js 15 + Tailwind v4 design system
00:052. Core Infrastructure4 (parallel)7 minGame state, UI library, audio, data layer (1,835 lines)
00:123. Core Screens5 (parallel)10 minTitle, character creation, cockpit, star map, nav (~1,461 lines)
00:224. Game Systems3 (parallel)5 minDialogue, missions, inventory/crew (~1,561 lines)
00:275. Mini-Games5 (parallel)6 minPromptDuel, Architect, Connect, Debug, Command (~1,718 lines)
00:336. Planet Content8 (parallel)26 min34 missions across 8 planets (4,455 lines)
00:337. Academy Content5 (parallel)concurrent*10 real-world guides (3,055 lines)
11:428. Polish4 (parallel)next AMTransitions, audio SFX, mobile, 20 SVGs
Info

* Phases 6 and 7 ran concurrently — academy agents finished while planet content agents were still writing. 61% of wall time was agent execution, 36% was orchestration overhead (dispatching, reviewing, committing), and only 3% was debugging.

Agent Team Architecture

Subagent-driven development is a workflow where a main orchestrator (the human + Claude Code session) decomposes work into independent tasks, then launches fresh agent instances to execute each task in parallel. The key principle: each agent gets a clean context window, a focused task description, and a set of files it is allowed to touch. No two agents ever edit the same file.

The main thread follows a strict protocol: (1) read the plan and identify the next wave of independent tasks, (2) launch agents with clear task boundaries, (3) wait for all agents to complete, (4) review the output, (5) commit each agent's work as a separate git commit, (6) move to the next wave. This mirrors how a tech lead coordinates a team of developers.

A critical discovery during the build: subagents cannot run bash commands or git operations. The main thread must handle all commits, type-checking, and integration verification. This constraint actually improved code quality — every commit was reviewed by the orchestrator before being accepted.

Tools and Plugins

Claude Code was extended with skills and plugins that structured the development workflow. Each tool served a specific purpose in the pipeline from idea to deployed code.

ToolCategoryPurpose
superpowers:brainstormingSkillStructured design exploration before writing any code
superpowers:writing-plansSkillCreated the 9-phase, 39-task implementation plan
superpowers:subagent-driven-developmentSkillOrchestrated parallel agent teams during execution
superpowers:executing-plansSkillStep-by-step plan execution with review checkpoints
context7PluginVerified latest API patterns for Next.js 15, Motion, Tailwind v4
compound-engineeringPluginCode review agents and architecture exploration
Explore agentsAgent TypeParallel codebase exploration for reference projects
code-reviewerAgent TypePost-implementation code quality checks
code-architectAgent TypeArchitecture decisions and component design
Warning

The context7 plugin was essential. It prevented the AI from using outdated API patterns — for example, catching that framer-motion has been renamed to motion (import from "motion/react"), and that Tailwind v4 uses @theme directives instead of tailwind.config.ts.

Key Decisions

Several architectural decisions shaped the build. Each was made deliberately to optimize for agent-based development:

Next.js over a game engine: React components map naturally to independent agent tasks. Each component is a single file with typed props — agents can write them in isolation without needing to understand the entire codebase. A game engine would have required shared state and scene graphs that are much harder to parallelize.

localStorage over a backend: The game is a teaching tool, not a social platform. There is no need for user accounts, leaderboards, or cloud saves. Removing the backend eliminated an entire category of infrastructure work and kept the project deployable on Vercel's free tier with zero ongoing costs.

Tailwind v4 over v3: The CSS-first configuration model (@theme directive, @import "tailwindcss") eliminates the tailwind.config.ts file entirely. Design tokens live in CSS where they belong, and agents can reference them without needing to read a separate config file.

Build Metrics

MetricValue
Wall clock (core build)~66 minutes
Total lines of TypeScript~14,400
Source files61
Total agent invocations35+
Max agents in a single wave13 (Phases 6+7 concurrent)
Type errors across all parallel work0
Git commits26
Implementation phases8
Discrete tasks in plan39
Merge conflicts between agents0

The zero-conflict metric is the most significant. By carefully decomposing tasks so that each agent writes to its own set of files, the entire build avoided the merge conflicts that typically slow down parallel development. This required upfront planning — the implementation plan explicitly listed which files each agent would create or modify.

What This Proves

Vibe Voyager demonstrates that agentic development is not a theoretical concept — it is a practical methodology that produced 14,400 lines of production TypeScript in 66 minutes. The human role shifts from writing every line to directing the architecture, decomposing work, and reviewing output. The agents handle the volume; the human handles the vision. Post-build analysis showed the session could be optimized to ~35 minutes by merging independent phases into larger waves and eliminating orchestration gaps.

Tip

The build log for this project (BUILD_LOG.md) was maintained throughout development and served as the source material for this section. Keeping a build log is itself a best practice — it creates accountability, captures decisions, and provides material for retrospectives.

Vibe Voyager — The Agentic Coding Odyssey