In the winter of 2023, I had a blind strong determination to create yet another educational product for developers.
Up until that point, I'd been living the bumpy life of an independent developer and educator, trying to stay afloat while making cool educational materials for developers and surviving never-ending, life-altering events such as a revolution, the birth of a child, a pandemic, and a full-scale war in my country.
Luckily, my recent project Refactoring.Guru was all the rage at that time, and despite many challenges, it felt like, after two decades of trying, I'd finally managed to produce a hit.
But like everything good in life, that sense of stability didn't last long. Make something useful, publish it, wait for people to find it, hope enough of them come back to support your work. Until very recently, this was the go-to strategy for small creators, publishers, and educators. Let's see if it still works.
Choosing the direction for a new product
At the start of 2023, there was only a hint of what was yet to happen. ChatGPT 3.5, a very silly model from today's perspective, but a GENIUS-level AI at the time, made me wonder whether any purely information-based product was pretty much doomed. I'm looking at you, my silly books and websites!
What I didn't expect was that the profession itself was about to be shaken really hard, too: all the layoffs, agentic development, and overall doom and gloom were yet to happen.
If plain explanations were becoming cheap, maybe guided practice with REAL tools still had value. Yes, ChatGPT could explain most stuff, but it was still just a chat: there was no way to run anything in it, and there weren't any illustrations or videos either.
Besides, I'd always wanted to move the learning environment closer to where the actual work is done. Instead of learning on a website or in simulated web editors, I thought it would be cool to have some sort of tutor right in your IDE.
It's funny that we almost have that now with AI chats and agents integrated into IDEs. But further integration somehow stalled halfway. None of the AIs, including native apps like Codex, have access to the IDE's UI, so they can't tutor people within that UI. All you have is a chat interface with access to a limited set of tools such as a terminal, a browser, formatters, etc.
So, I had a rough idea of the desired format: a practice-based course inside a code editor. But which editor? There were two major editor families around: VS Code and JetBrains IDEs (IntelliJ IDEA, PyCharm, and the like).
I decided to start with VS Code, since it was open-source, free, and popular among beginners. It's also based on the JavaScript stack, which I knew well and which would let me get something up and running relatively fast (it was early 2023, remember, so there was no Claude to write code for you in any esoteric language). Luckily, later on, new IVEs (integrated vibe environments) such as Cursor, Windsurf, and then Antigravity were all VS Code forks, so my little thing became compatible with all these editors without much extra effort.
I'd recommend that any developer who has ever wanted to build a tiny REAL product make an IDE extension. It's a safe bet: improve some piece of the workflow for yourself and share it with fellow devs. The chances of making a buck from it are pretty slim, but you can still gain a lot of valuable product experience, see how it all feels, and talk with real users.
The tech was chosen, but what about the topic? My main option was to develop a new version of the Refactoring course, requested by so many people over the years. The current version is web-only, and practicing refactoring right in your IDE would likely be a killer product.
However, by that time, I'd already attempted several unsuccessful redesigns of that course and was burned out on the topic. Besides, it was likely to be huge in scope, and I wanted something smaller to try out this new practice-based educational concept (btw, I'll return to that topic in later parts of this series, so stay tuned if you're interested).
So, of all things in the world, I chose Git. Why, though?
Business considerations
Being a solo indie dev means constantly sweating over such nonsense as:
- following market trends: business lingo for making cool stuff;
- being aware of the product lifecycle: recognizing when cool stuff becomes uncool;
- traffic growth: letting more people know about your work (also known as distracting yourself from developing the product);
- and of course monetization: making enough money to avoid starvation.
Coming up with something that would tick all the boxes is tricky, because you often have zero clue about the grand scheme of things. You're just a single person, often without a huge budget or powerful friends. There are tons of ways to test product ideas, yes. But sometimes, by the time you've tested and verified your product idea and shipped 1.0, the market changes again (business lingo for oops, nobody writes code by hand anymore). In the end, you just try to place one decent bet before the table moves again.
Nevertheless, if I've learned anything over the last two decades as an indie dev, it's this: always start with distribution, meaning how you're going to get users for your precious creation. Btw, let me know if you want me to explore this in the next emails.
In this particular case, I decided to copy what worked for me in the past and bet on SEO as a primary channel. Most people who know about any of my work learned about it through search. I know how it works and know how to make a resource that both 1) ranks AND 2) is not a complete dumpster fire from the user's perspective.