A personal, offline-first poker bankroll tracker built as a mobile-first PWA. Fast session entry is the core product — cash and tournament logging, rebuys/add-ons, expenses, and a live session card — with client-derived analytics on top: P/L curve, $/hr, BB/hr, win rate, and profit broken out by venue and stake. It also bundles poker tools (an exact-enumeration odds calculator with Monte Carlo fallback pre-flop, and a chip-chop calculator) plus CSV/JSON import and export.
The architecture is deliberately offline-first: Dexie (IndexedDB) is the single source of truth, and Supabase is a background-synced replica that the UI never awaits. Writes use client-generated UUIDv4 primary keys for idempotent upserts, last-write-wins conflict resolution by timestamp, and soft deletes — so the render path stays fast and correct even without connectivity.
Built with React 18, TypeScript, and Vite on the frontend (shadcn/ui, Tailwind, Recharts), Dexie.js for local storage, and Supabase (Postgres + RLS, magic-link auth) for sync.