work / tt-coach · Live
Table Tennis Coach
Match tracker, training journal and AI coach for my own game.
After a match you always have thoughts: what worked, what to fix, how you beat that opponent. Then it evaporates, and you meet them again a year later with nothing. I wanted somewhere to dump the mess right after playing, and an AI layer that reads the whole history back and tells me how to approach the next one. A coach in the pocket, from notes I was half-writing anyway.
Two years of scattered post-session notes and no way to see patterns in my own matches.
A PWA for logging matches and training with an AI coach that reads the history. Local-first with a cloud mirror added later without a rewrite.
- React 19
- Vite
- Dexie
- Claude
- Supabase
Local-first plus a cloud mirror beat a rewrite: 24 screens untouched.
A pure-frontend replica with mock data: nothing is saved, nothing leaves the page. The real app is richer; this is the feel of it.
loading the demo…
The thinking
user · pains · gap · tools
Competitive amateur players (me) who train weekly but never mine their own match history.
Target user
- Two years of post-session notes scattered and unsearchable
- Patterns in losses invisible without data
Pain points
Match tracking plus an AI coach that actually reads your history, built for amateurs rather than academies.
Gap in the market
- Claude (coach)
- Claude Code (build)
- Dexie
- Supabase mirror sync
AI + tooling
- Deliberate practice: train the weakness the data exposes, not the favourite drill
- Reflective practice loop: log, review, adjust
- Local-first with cloud mirror
Frameworks
- Built and live, but not yet stress-tested across a full season of matches
- TBD: sessions logged, insight-to-training conversions
Success metrics
Snap a receipt, AI reads it, your spending explains itself.