Why I built a coach that shows while it tells
I built Chess Coach because I kept losing the same way at 1000, and nothing I had would tell me why. I’d finish a game, run the engine, and stare at a number. +1.3. Great — better than what? The line it wanted scrolled past in a notation I could read but couldn’t feel. The analysis was right and completely mute. It never once said a sentence to me.
What I wanted was the thing a human coach does without thinking: sit next to you, watch the board, and say “no — look, if your knight goes here, this whole side of the board changes,” while their hand moves the pieces. That’s the entire idea. A coach in the room, not a bar chart.
What makes it different
The demonstrations are sentence-synced. When the coach says a move, that move plays on the board at the moment the words land — arrows and highlighted squares arriving exactly when they’re spoken. You hear the idea and watch it at once, which is how a person teaches and nothing an eval bar can do.
Underneath is a validation layer that recomputes chess truth every single turn. Before any line is shown to you, it’s checked against the real position — every move has to be legal on the board in front of you. Anything that isn’t gets rejected, not displayed. That’s the honesty rule made mechanical: the coach can be wrong in what it says, but it can never show you a move that doesn’t exist.
And quality here is a number, not a vibe. Every release runs through an eval harness that measures the coaching against a rubric — so “it got better this week” is something I can point at, not something I hope is true.
Where it’s going
The near-term work is fine-tuning small open models so good coaching stays cheap enough to give away — the free tier has to keep the magic. After that: the app stores, and a version built for kids and families. It’s early, and I’d rather say that plainly than pretend a team-of-one is a company.
Say hello
I read everything. Questions, disagreements, and bug reports all go to alex@fiveovernine.com. And found a bug? The thumbs-down button in the app really does get read — every one.