AI-powered billiards practice tracker
A React/TypeScript app for logging billiards practice sessions with shot-level detail, trend visualization across sessions, and Claude API coaching feedback.
Billiards practice without tracking is just hitting balls. Knowing which contact points you miss, at which power levels, across which drills — that's how you improve.
A practice logger that captures drill type, individual shots (contact point, power, result), and session notes. Recharts visualizes trends over time. The Claude API analyzes your session data and provides coaching feedback specific to your patterns.

Logging a Straight-ins session with 6 shots tracked by contact point, power, and result

Made/missed trend line showing improvement across sessions for a drill type

Claude analyzes shot patterns and provides specific coaching feedback based on your data
Component architecture for a multi-panel UI
Type safety across session and shot data models
Fast dev server and build tool
Utility-first styling matching billiards color palette
Line charts for made/missed trends by drill type
AI coaching debrief based on actual shot data
localStorage persistence — no backend needed for a practice log
Shot logger uses accordion pattern — collapses after save to keep UI compact
Shots not required to save a session — Ghost ball practice doesn't lend itself to shot logging
AI prompt instructs Claude to return plain text, not markdown — simpler rendering
Drill types domain-accurate: Straight-ins, Cut Shots, Cue Ball Control, Breaking, Safety, Kick, Bank, Ghost
Related Project
cue-qa