Cloud saves were fully built but never wired up — useCloudSave() hook was never called, no load-from-cloud flow existed, and there was no way to continue a saved game. Logout was completely missing (no endpoint, no UI). Accounts felt like a gate behind the invite wall rather than real accounts. Backend: add tokenVersion to users for server-side token invalidation, POST /auth/logout bumps it to revoke all JWTs, GET /auth/me returns profile, GET /saves/latest returns most recent save with full gameData. All createToken calls now include tokenVersion. Auth middleware rejects tokens with stale tokenVersion. Frontend: wire up useCloudSave() in App (auto-saves every 60 ticks with error handling), fetch cloud save on startup for registered users, show "Continue Your Game" card on NewGameScreen, add Log Out button with confirmation in Settings, show username in sidebar, 401 interceptor clears auth and reloads. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Token Empire
A browser-based incremental/idle game where you manage an AI company from a garage startup to building AGI. Navigate the real tensions of the AI industry: scaling compute, training frontier models, balancing safety vs capability, hiring talent, and competing with rival labs.
Target: 4-8 hour single playthrough | Platform: Desktop browser | Price: Free
Quick Start
# Prerequisites: Node.js 18+, pnpm 10+
pnpm install
pnpm dev
The web app starts at http://localhost:5173 (or the next available port). The backend server starts alongside it for cloud saves and leaderboards.
Tech Stack
| Layer | Choice |
|---|---|
| Frontend | React 19 + TypeScript, Vite |
| State | Zustand (slice pattern, localStorage persistence) |
| Styling | Tailwind CSS (custom dark theme) |
| Charts | Recharts |
| Backend | Hono (Node.js) |
| Database | PostgreSQL + Drizzle ORM |
| Monorepo | Turborepo + pnpm workspaces |
Project Structure
token-empire/
├── apps/
│ ├── web/ # React frontend (Vite)
│ └── server/ # Hono API backend
└── packages/
├── shared/ # Types, constants, formatters
└── game-engine/ # Pure TS simulation (no DOM dependencies)
The game engine is fully decoupled from React. It runs identically for real-time ticks, offline catch-up, and testing.
Game Overview
Four Eras
- Startup (~30 min) — First datacenter, first model, first customers
- Scale-up (~2 hr) — Growth, multiple datacenters, specializations
- Big Tech (~4 hr) — Global operations, regulation, IPO
- AGI (~8 hr) — Endgame push, AI agents, custom chips
Core Loop
Buy GPUs → Allocate compute → Train models → Deploy → Earn revenue → Expand
Key Systems
- Infrastructure — Datacenters across 7 global regions with different costs, latency, and risks
- Research — Tech tree with generation upgrades and specialization branches
- Models — Train, tune, and deploy models with capability scores across reasoning, coding, creative, multimodal, and agents
- Market — Consumer subscriptions and B2B API with token-based pricing
- Talent — Four departments (Research, Engineering, Ops, Sales) with hiring and morale
- Competitors — AI rival labs with distinct personalities that react to your moves
- Events — 40+ events across industry, regulatory, PR, internal, market, and geopolitical categories
- Safety — Tradeoff between capability benchmarks and safety; low safety risks PR disasters
- Funding — VC rounds from Seed to IPO with dilution mechanics
- Achievements — 15 milestones tracking progression
Scripts
pnpm dev # Start all apps in development mode
pnpm build # Production build
pnpm typecheck # Type-check all packages
pnpm lint # Lint all packages
pnpm clean # Clean build artifacts
Backend Setup
The backend requires PostgreSQL for cloud saves and leaderboards. Set the connection string in apps/server/.env:
DATABASE_URL=postgresql://user:password@localhost:5432/token_empire
Run migrations:
cd apps/server
pnpm db:push
The game works fully offline without the backend — saves persist to localStorage.
Documentation
- Architecture Guide — Technical deep dive into the engine, state management, and simulation systems
- How to Play — Player guide with mechanics, strategies, and tips
License
All rights reserved.