Blog
Notes

How Socratic Chess got here

Advait Rao · 10 July 2026

I’m Advait. I built Socratic Chess. Here’s the actual timeline of how it got here, not the tidy version.

Phase 1: Proving the concept

identifying the most important customer

The first version was a proof of concept: could grounding an LLM in a real chess engine produce coaching that actually held up, instead of the confident nonsense you get asking a general chatbot about a position. I posted it on Reddit. Thirteen people signed up. None came back, and I never emailed to ask why.

The user who mattered most was me. I’d been stuck at 1300 rapid for two years. Using my own tool on my own games, I went from 1300 to about 1470 in twenty days, into the top few percent of active chess.com players. That’s what told me the idea had legs, not the signups.

It also handed me a mistake to fix. I’d built a desktop app for players who were mostly on their phones, and every growth channel I’d ever use was mobile too. I deferred it on purpose, the coaching had to be trustworthy first.

Phase 2: Explaining moves, not just labelling them

a right answer explained badly still misleads you

Next I hit a ceiling I didn’t expect: the evaluation could be correct and the coaching could still mislead, because a right answer explained badly teaches the wrong lesson. Naming a tactic isn’t the same as explaining what it does. I spent weeks translating raw engine lines into ideas a person actually thinks in: forks, pins that don’t involve the king, the intent behind a sacrifice, not just its label. Shareable review cards showed up around here too, so a review could be posted as an image instead of a link nobody clicks.

Phase 3: Almost giving up

building the eval suite that saved it

This one felt like whack-a-mole. Fix one confusing answer, a different one turns up a few games later. I almost gave up. Then it hit me:

I couldn’t fix what I couldn’t measure.

So I built an eval suite, used Claude for a lot of the plumbing, and settled on one rule: every real mistake becomes a permanent test case. Not a note to remember, a check that runs from then on, so the same failure can’t quietly ship twice. Bugs get logged, fixed, and locked in with a test. That loop took the coaching from something I was firefighting to something I could trust.

Phase 4: Bringing the coach onto the board

solving which move you actually meant

A lot of what was still going wrong wasn’t chess at all. You can ask about any move in the game, the live position, or a line you’re just trying out, and the coach first has to work out which one you mean. Get that wrong and it answers a different question with total confidence, worse than getting the chess wrong, since it looks like a real answer. Fixing that meant a step that pins down what you’re referring to before any analysis happens.

Once that was in, keeping the coach in a chat window next to the board stopped making sense. The point of doing this on a screen is that the coach can live where the position is. I rebuilt around that, mobile-first this time, which forced most things onto the board itself. Finally emailed those early users. Nobody replied. Wrote a few more Reddit posts anyway.

Phase 5: Nobody was coming back

rebuilding the landing page around a real demo

With the coaching somewhere I trusted, the real problem was obvious: people weren’t having the moment that makes them come back. I rebuilt the landing page around a live, playable demo that shows the best of it immediately, nothing to sign up for just to look. It took a real design effort, a chess-workbook look, cream paper, a printed score column, that felt approachable rather than another dashboard. Added About, Blog, and Glossary pages for the parts that weren’t obvious. It’s usable on my phone now, though not as smooth as a native app.

Phase 6: Getting it in front of people

and actually listening when they try it

Right now the job is getting it in front of more people and actually listening when they try it: writing, emailing users, talking to players on Reddit, using automation to do that properly instead of guessing. Still finding friction I didn’t know was there. That’s the whole method really: find where it’s wrong, fix the actual reasoning, make sure it stays fixed.

If you want to see where it’s at, bring one of your own games and ask it something you’re not sure about.

Read nextWhy your game review doesn't help you improve10 July 2026A list of blunders and inaccuracies tells you what happened. It doesn't tell you why, or what you were actually thinking.Why a good coach asks questions, not answers10 July 2026Human coaches rarely open with the right move. They ask what you were thinking, first.Why we'd rather our coach say nothing than guess10 July 2026A coach that's fluent but wrong is worse than one that stays quiet. So every claim ours makes is checked before it's said.