This post may be most relevant to people who play a lot of chess but either don’t study it at all, or study in a messy way and don’t see gains.
I decided to write it both to help others and for myself, as a reflection on my journey to 2000 and how studying with my own app got me there.

What’s unique is that I gained +200 rating points in 2 weeks by studying and training solely in an app that I wrote myself.
NOTE: I know some people find this valuable so I will mention that the whole app is implemented by me, and no AI code generation was used.
More in the post 👇
My chess story
I started playing chess in September 2015. I don’t exactly remember how I ended up on chess.com. When I started playing, I only knew how the pieces move, and that was it. I was just pressing the play button and playing, completely on my own, without any external guidance. At that time, you started at rating 1000 on a fresh account, and 10+0 time control (10 minutes for each player, no increment) was considered blitz. I quickly lost the initial rating and went as low as 350. You can see my example game from that period.
Then I remember discovering chess videos on YouTube, and back then it was a completely different world compared to what we know now. The first channel I found and started watching was kingscrusher, followed by the Saint Louis Chess Club channel. I really liked the slow-paced videos on both channels, and they helped me build a basic understanding of how to play. Slowly, I started gaining rating, which was natural and expected because, as I said, I had no idea how to play before. During that period, I switched to playing 3+2 blitz almost all the time. Eventually, around the beginning of 2019, I was 1450 blitz and 1100 rapid.
In 2019, I published the Chessvision.ai Chrome extension, which over time evolved into many other apps under Chessvision.ai umbrella that you may know. This definitely helped in the long term to keep me closely tied to the chess world, which I’m really grateful for. Over time, I consumed a lot of YouTube chess videos, and that was my main source of learning. The only other activity was occasional puzzle sessions.
From then until now, I've been oscillating in blitz between 1450 and 1750, reaching as high as 1770. In rapid, I went up to around 1800. But it has always been a rollercoaster and felt like I had completely plateaued. Over all this time, up until last month (which I will explain later), my only source of knowledge was casual watching of educational chess videos on YouTube.
Finally studying and pushing to 2000
Then, at the end of 2025 / beginning of 2026, I started seriously studying chess, and I want to describe exactly how.
Openings I play
For context, these are the openings I play:
White
- 1.e4 only.
- If 1...e5, I try to play the Ponziani. If my opponent doesn’t play into it exactly, I still try to include c3 to get a similar structure. It seems like a very flexible setup overall.
- Against the Sicilian, I play the Alapin Variation, and I think this is one of my weakest points.
- Against the French, I used to play the Advance Variation, but recently I switched to the Alapin Gambit, which seems to fit my attacking style better.
- Against the Caro-Kann, I try to play the Fantasy Variation.
Black
- Against 1.e4, I play the French exclusively, and I’m happiest to face the Advance Variation.
- Against 1.d4, I play the Englund Gambit, which seems to bring decent results (despite being objectively dubious). I used to play the Budapest Gambit, and I have never played any sound opening against 1.d4.
- Lastly, against 1.c4 or similar setups, I try to play structures like the Dutch Defense, but it still feels like I don’t know what I’m doing. I’ve never studied anything in these lines.
In autumn 2025, I started working on my own app to collect chess material and train it, it’s called Chessvision.ai Library. The idea was to create a workflow that makes it easy to build a collection of studies, organize them, and train them. I didn’t want to focus only on openings; instead, I wanted this to be a library for all chess positions I’m interested in.
I will describe the exact workflow I use with the Chessvision.ai Library here. You can probably achieve a similar workflow using other tools, although I think with a substantially more hustle.
The workflow
In the Library, everything is organized similarly to how files are organized in a file system - you have folders and studies are individual "files"

First, I connected my chess.com account to the app, so that the app is aware of the games I play. If you play on lichess you can also connect it, and also many other apps to save chess content from there with ease:

Then, I created Studies matching the openings I play. To do this, I used a feature called Opening Assistant to compute a list of openings I play along with my performance.

Next to each opening, there’s a button called Create Study, which creates a Study for that opening. It’s best to start with just a few openings and add more later so you don’t get overwhelmed. You can always expand naturally over time.
Then, for each Study, I started adding the moves I want to play and the most popular responses by my opponent. In the Library, this is done using Opening Builder mode, which automatically adds the next most likely response that isn’t yet in the opening tree. From there, I add my move based on opening explorer stats, engine evaluation, and linked materials. For example, the Library automatically shows videos matching the current position, so you can get instant explanations. You can also pin these videos to positions for easy access later.

Once the moves are added, I turn on Flashcards for the Study, which allows me to train them. The Library has three types of flashcards: Opening, Tactic, and Goal-oriented. They differ by completion goal.
Opening flashcards: they are perfect for studying openings. There is a single flashcard for each move in a Study, so you exactly know for which variations you are performing well, in which you struggle, so that the whole learning can be optimized in eventually learning the whole tree.
Tactic flashcards: these are for tactics, so concrete lines to gain a significant advantage, including checkmates. They are especially interesting because if you add multiple opponent responses, you’ll be tested on all of them (you can adjust this behaviour in the settings). This is quite unique and helps a lot with training, because usually when you solve chess puzzles you are tested only on a single opponent's response.
Goal-oriented flashcards: they work by setting a goal (e.g. win, keep equality, stay slightly better), then playing moves vs computer responses until you believe the goal is reached. You can think of them as self-evaluation training, where you are given a position and you need to make moves to eventually reach a position where you can confidently claim that the goal has been achieved. For example, you start in an endgame in which after promoting a passed pawn and feeling confident about conversion, you click "verify" to check if the goal was achieved. If you fail, then you start again from the starting position and the computer will test you trying to play into same lines where you have failed. Same can apply to middlegames, or even to positions where you need to defend and hold a draw.
Feedback loop
Now we’re ready for the main feedback loop:
Play -> Review -> Add moves to Studies -> Study -> Play -> ...
For the Play phase, I recommend games longer than 3+2. What has worked best for me is 10+0. It’s long enough to allow deeper thinking in critical positions, but short enough that I can play several games per day. I’m also quite fast with the mouse, which often gives me a time advantage straight out of the opening, always useful, especially without increment.
For the Review phase, I use chess.com review/analysis combined with my own feeling about where I played suboptimal. I review both losses and wins (which I didn’t do back when I mostly played blitz, where I only checked projected accuracy, which has little real value).

From the Review phase, there are two main actions:
- Expand opening Studies with moves that appeared in the game and that I wasn’t prepared for. This can be done automatically in the Library using a feature called Insights, or by creating new opening Studies for openings I faced but hadn’t studied yet, this is what I did when I started facing the Stafford Gambit and had terrible results.

- Create Studies from misplayed tactical, middlegame, or endgame positions. In my workflow, I use the Chessvision.ai Chrome Extension or Chessvision.ai Mobile Scanner App to take a picture of a position, scan it, and save it. That way it lands in my Inbox folder in the Library as a Study. I then open it, add the moves I want to play, and create flashcards: Tactic flashcards for tactics, and Goal-oriented flashcards for endgames and middlegames. I also capture all interesting positions I encounter on the internet that way, e.g. on Twitter or Reddit.
Next, I simply study my pending flashcards. I do this by going to training, adding all pending flashcards to a training set, and training until it’s complete. At first, I made the mistake of creating too many tactic flashcards from mate in 2 puzzles from a PGN. This led to sessions with 500+ flashcards, which was overwhelming and caused me to stop. Things only improved once I deleted everything and started gradually adding material, resulting in more frequent sessions with fewer pending cards. This works very well for me.

Then the loop repeats. I also study every day before playing my first games. This not only refreshes material but also works as a great warm-up before making real moves.

Extras
I’m very optimistic about future improvements, especially because I only started actually studying a month ago.
Over all this time, I’ve played maybe around 10 OTB games in total, none of them with a clock. People tell me that I need to experience an OTB tournament.
If you read all of this, it's a great sign that you are interested enough in chess and care about your progress. The bottom line is that chess is great, has been a big part of my life since I started, and I hope it will continue to be.
