How I made $10k in one month from an online vim course

Apr 14, 2021

In January of this year (2021), I launched a course that taught developers how to learn vim called vim.so. A month after launching it, it had made me $11,261.

An image from Notion

The crazy thing about vim.so is that it only took me 3 days to release the initial version. In this post, I'll reflect on how I got here, the struggles of launching many failed projects before the vim.so course, and some techniques you might find useful when launching your own online programming course.

Before vim.so

Some backstory is needed to see how I was able to launch my vim course in 3 days. The truth is that it starts with burnout.

Prior to launching vim.so I was heads down for about 4 months working on an online interactive Python course called Deliberate. I worked hard on adding all the auth, payments, code execution system, and a custom lesson authoring tool to the product. The majority of the 4 months of work were on all the parts of Deliberate that weren't lesson content.

As I got closer to launching, I added around 10 small lessons to the app. I was exhausted from all the platform work and I found it hard to focus on making the great content the product needed.

I launched Deliberate and got about 100 free users on my first day. I needed a break. Looking back, it's obvious I was burnt out. I was working on Deliberate in the early mornings before my day job for 4 months and I had made $0. Soon I saw a tweet that sparked the idea for vim.so

Launching in 3 days

This tweet changed my life (Thanks @damengchen)

I saw this tweet from Damon and it struck a chord with me. I had been indie hacking for years with no revenue, bouncing from one product idea to the next. Seeing Damon go through a similar situation gave me hope.

A big reason he was able to win was that he timeboxed the development of testimonial.to. I decided I would do the same.

I gave myself 3 days to build and launch vim.so On Jan 7th I got to work.

An image from Notion

Being able to leverage the previous 4 months of work I put in on Deliberate let me quickly build vim.so. Even though the content was much different, a lot of the same work had to be done. Landing page, user auth, stripe integration, code editor embed, etc. (You can start to see how I got the idea for Slip).

In order to meet my self-imposed deadline, I decided I'd build out the first 3 lessons and launch into early-access. My first customers would get a steep discount for buying early.

An image from Notion

On January 10th I had a working early-access product that people could buy. I prepared to launch!

Making my first $8 on the internet

If you hang around on the internet in the indie hacker or entrepreneurial space, there's a good chance you've seen @jackbutcher's tweet about making $1 on the internet.

I kind of became obsessed with this idea and I wanted a small win to keep myself motivated to keep creating.

On Jan 10th I nervously tweeted out the announcement that I had launched vim.so. Within a few minutes I got my first Stripe notification.

I had made my first $8 on the internet.

The feeling was incredible. I ran into my bedroom where my girlfriend was still in bed with our kids and told her that someone had bought a copy of my prodcuct! We were both so damn excited.

An image from Notion

I was happy with the $8 I made but something surprising happened. People kept buying my product! I ended up making $216 my first day.

An image from Notion

Excited about my first day of sales, I decided I'd do the usual round of launches. I spent the next week finishing up the remaining lessons and I raised my prices.

Launching continuously

If you look at the Stripe graph over my first month with vim.so, you can clearly see the points where I "launched" the product again and again.

An image from Notion

The launches by the numbers.

Hacker News

  • $1815 earned
  • 121 copies at $15
  • 18404 visitors

r/programming

  • $900 earned
  • 36 copies at $25
  • 7444 visitors

Product Hunt

  • $875 earned
  • 35 copies at $25
  • 6736 visitors

While these launch days were nice and totaled $3590 in added revenue, most of my sales happened in smaller quantities across the month.

The launches were good for driving traffic, getting backlinks to my site, and bringing awareness to my product.

If I were to do it again, I'd probably do it in reverse order. The HN launch was the biggest source of traffic but it was under-capitalized since I hadn't raised prices at that point. I missed out on an additional ~$1200 in revenue.

On PH/HN/Reddit Launch Advice

I get semi-frequent requests on how to do a succesful PH or HN launch and the truth is that I don't really know how to do a great launch!

I think one reason vim.so did so well on my launches is that vim is a polarizing topic. Developers love to argue for and against vim, which drives engagement.

Leveraging my success

I got some non-monetary benefits from launching vim.so as well. My twitter followers grew from ~800 at launch to a few thousand within that month. I had some credibility and attention on the internet. Soon I had an idea that I could leverage my success from vim on.

On January 15th I had the idea for Slip. If I were able to make a course in a few days, why shouldn't someone else get that power as well. Programmers should be able to easily create and sell their own courses! It shouldn't take months of work building a bespoke platform to earn money online with your programming knowledge.

I threw together a basic landing page and started collecting emails, eventually passing over 800 early access subscribers.

I launched Slip a few months later. We're growing fast. (You can try it out for free for 7 days here!)

How vim.so does today

At the time of writing, vim.so has earned me $17,193. The course sales have trended down but are starting to flatten out at around $50-75/day in sales.

I'm planning on doing an experiment in public on growing sales for vim.so as a way to teach Slip authors how to leverage SEO for their own courses.

That's all for today. Thanks for reading!

If you want to keep in touch, follow me on twitter @KennethCassel