Blackjack Trainer
A complete product, shipped solo, with the depth a serious player needs. Proof I finish things — even on nights and weekends.
Built with AI assistance but the product is pure deterministic domain modelling — counting, EV math, spaced-repetition. The AI angle is the build process, not the product.
React 19 + Vite 6. Pure-function game engine with strategy.test.js invariants. 17 modes. All client-side; works offline.
Vite build, Vercel hosting, zero backend. State in localStorage. Static and cacheable — the kind of deploy that's impossible to break in production.
Deep domain modelling — Hi-Lo, KO, Omega II, Illustrious 18, rule variants, Wonging — shipped as a working tool for a specific advanced user.
Most blackjack tools are flashcards. This is a full simulator with the rules a counter actually cares about — H17/S17, DAS, RSA, surrender, deck penetration, bet spread — plus Wong-in/out and the Illustrious 18 deviations.
The engine is a pure-function module. No React imports. The UI is one consumer; the math is testable on its own.
src/engine/Eight pure-function modules. Zero React imports.
React 19 · Vite 6 · Pure CSS · Recharts · @vercel/analytics. State in localStorage. No backend. Works offline.
17 modes · 19 components · 9 engine modules · ~6.1k lines.