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.