Improvement | Chess Openings | Apps

Learn Chess Openings That Matter To YOU

Alfredo Fomitchenko
Getting Into Chess
Published in
5 min readJan 21, 2023

--

Photo by Kelly Sikkema on Unsplash

Welcome to the world of chess

So you bought an opening course on Chessable.com or Chessly.com, and you are getting excited about crashing all the 1100s who come knocking at your door on Chess.com or Lichess.org.

The course has 400 lines, so you simply start from chapter one where the opponent replies with the King’s Indian. You spend hours reading the GM comments, understanding concepts, memorizing positions.

You are ready now.

You sit down on Chess.com or Lichess.org, and next thing you know 3 hours have passed, only 2 people out of 65 have played the King’s Indian, and in 63 games you were completely on your own by move 3.

You have two choices now.

First choice: spiritual journey

Photo by Zac Durant on Unsplash
  1. Download all 65 games you played
  2. Find some software that can import the games and figure out how to use the software
  3. Start another spiritual journey where you go through all the variations your opponents played, and figure out what the average 1100 plays against you
  4. Start another spiritual journey where you go through your opening course to find where the GM was talking about those lines

Second choice: I didn’t even like chess in the first place

Photo by Christopher Ott on Unsplash

Let’s face it: you started playing chess just for the rush of it. You don’t want to spend hours finding the lines you should study.

You accept that you financed some GM, then go back to playing bullet and losing 200 ELO in one sitting.

There must be a better way

What if I told you that I am developing a tool that…

  1. can import your Chess.com or Lichess.org games to figure out what the average 1100 plays against you
  2. can import any opening course you bought and let you train the lines YOU should study, leaving behind all the lines you will never face in your 1100 (soon-to-be 1600) career

Nah, I don’t believe you

Let me show you.

This web app I’m developing…

  • Keeps responding to my English opening with 1… e5 and 2… Nf6, because the majority of games I played on Chess.com was 1. c4 e5 2. Nc3 Nf6 (1100s don’t know any better)
  • Lets me retry the move when I incorrectly play 4. a3 to attack the bishop (I see bishop, I attack bishop)
  • In the background, it keeps track of the time I spend on each move to analyze the performance

Is it working for you?

Thanks to this app, I’m putting in a lot of focused training, and I’m not lost at move 3 anymore.

I have been crashing in Blitz ever since.

Nice, can I have it?

The app is under active development, and transforming it into a final product for everyone takes time and effort.

If enough people like and share this post, I will put time and effort into open-sourcing the app.

If you want access to the app and crash your opponents, subscribe.

Clap the story.

And share it with someone who loves chess.

Can you at least tell me how you did that?

This gets very technical very quickly, so bear with me.

Downloading all your games

My Chess.com username is alfredo-f.

This script downloads all the games I played since 2020.

Here are all my games.

Downloading the opening course you bought

Last year on Chessable.com I bought the wonderful course The Iron English: Botvinnik Variation by the wonderful GM Simon Williams.

As you can see, progress has been very low.

A chessboard to rule them all

The interface consists of a Javascript chessboard based on the same library used by Chess.com and Lichess.org.

It shows…

  • buttons to control the timer tracking my moves. I can add any button, “the 64 squares are the limit”
  • sections for the move comments

Where the magic happens

The Python backend is based on Django.

Games and opening lines are ingested into MongoDB and Postgres databases, and opening lines are assigned an importance score based on the games you played

  • how frequently they have appeared
  • how deeply they have appeared (e.g. many opponents have prep until move 10)

Ok, can I have it?

If enough people like and share this post, I will put time and effort into open-sourcing the app.

If you want to crash opponents, clap the story and share it with someone who loves chess.

Before you leave, can you share more details?

If you like software and you want me to go into details about the architecture I developed, let me know in the comments. There’s so much meat to get into:

  • Frontend, backend: Python, HTML, CSS, Javascript
  • Frontend-backend communication: Redis
  • Graph modeling: Neo4j (ditched for performance issues)
  • Persisting data: MongoDB, Postgres
  • Orchestration: Docker, Docker Compose

--

--