tristanfaure.com /projects / indigo-league
Indigo League
A daily Pokémon-style challenge in the browser — same seed for everyone
2026 · LIVE
Stack
TypeScript · Vite · Supabase · Docker · Caddy · Canvas
Key figures
- Format
- Daily seeded challenge
- Roster
- 151 species — full Gen 1
- Tests
- 86 test files
- Backend
- Supabase + PLpgSQL
A Wordle-style daily challenge as a browser game: every player worldwide gets the same deterministic seed each day — same encounters, same odds — and competes on the leaderboard.
A complete battle engine written from scratch in TypeScript/JavaScript: turn-based combat AI, move execution, catch and experience calculators, sprite generation — plus explorable maps (Pallet Town, Oak's lab, Route 1) rendered on canvas.
Determinism is the technical core: a seeded RNG guarantees fairness and replayability, verified by a vitest suite and strict TypeScript.
The full first-generation roster — 151 species — plus a cosmetics system (appearance axes, skin sheets) for player identity.
Production stack: Supabase (auth + PLpgSQL leaderboard), Vite build, Docker image served by Caddy with automatic HTTPS — self-hosted, 86 test files guarding the engine.
Links
All 33 projects · Open the interactive portfolio · About Tristan