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