Digital implementation of Jambo with a pure TypeScript game engine, React UI, and AI opponents.
npm install
npm run devUseful commands:
npm run dev
npx tsc --noEmit
npx vite build
npm testThe multiplayer/auth server now serves both WebSocket and HTTP auth endpoints on port 3001.
- Copy
.env.exampleto.envand set:MONGODB_URI(Atlas connection string)GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET
- In Google Cloud Console, add OAuth redirect URI:
http://localhost:5173/api/auth/google/callback
- Start app + server:
npm run dev
npm run serverAuth endpoints used by UI:
GET /api/auth/google/startGET /api/auth/google/callbackGET /api/auth/sessionPOST /api/auth/logout
- React 19 + TypeScript + Vite
- Zustand state management
- Zod validation
- Tailwind CSS
- Vitest test runner
- src/engine/ — pure game engine and resolver pipeline
- src/ai/ — AI policies and simulation support
- src/ui/ — React components and interaction panels
- src/hooks/ — Zustand integration
- src/persistence/ — serialization and save/load
- tests/ — engine, AI, UI, and multiplayer tests
Canonical docs live in docs/INDEX.md.
Primary references:
- Rules and cards: docs/CARD_REFERENCE.md
- Product requirements: docs/PRODUCT_REQUIREMENTS.md
- Architecture: docs/ARCHITECTURE.md
- Documentation policy: docs/DOCS_POLICY.md
Legacy/superseded docs are retained under docs/archive/ for historical context only.
- 2026-02-15: Established canonical documentation set in docs/INDEX.md.
- 2026-02-15: Consolidated active docs and moved superseded material to docs/archive/.
- 2026-02-15: Added documentation governance rules in docs/DOCS_POLICY.md.