Strangers from the internet paid for my MacBook Air: on my 4th year of indiehacking

Max Rozen

Max Rozen / December 16, 2021

At the end of each year I take the time to reflect on how I progressed towards my goal of being self-sufficient as a web developer, here are the previous editions of this article:

I started 2021 knowing I was going to make money on the internet if I stuck to consistent technical writing. Thanks to 30x500 (a course on selling products), I learned the value of consistency, and the power of giving away free content as a means of building trust at scale.

At some point in February, a recruiter reached out to ask if I wanted to write articles full-time for their SaaS to help drive their content marketing growth engine.

I thought about their offer for a solid day or so before realising that I had built a SaaS before, why not just use my content marketing skills to drive traffic to one of my own products?

And so my end of year wrap-up post is yet again about how I built a SaaS (my 7th attempt at building a bootstrapped SaaS for those of you counting at home).

Keen to see what happened? Read on, dear reader.

Table of contents

Will write technical content for cash

Book 1

At the start of the year, I had just finished writing an ebook on React's useEffect hook, and I was ready to launch.

On January 6, I launched to about 500 email subscribers, and uhh other things happened that day to distract people from some guy on the internet selling a single resource to learn useEffect.

I ended up making 27 total sales, and $301.84 USD.

I was actually pretty satisfied - in 2020 I made around $100 USD over the entire year from publishing my React articles on Medium, and this only took a few weeks to do.

Throughout the rest of the year, without trying particularly too hard to market/sell the book, I ended up making $721.94 USD, after fees.

Book 2

In mid-February, I decided I would give away an ebook on React testing for beginners.

I was still writing and releasing articles about React almost every two weeks. I noticed I was getting decent traffic on some of my articles about React testing, and realised React could use a resource for beginners to get started.

Over one particularly caffeinated weekend I combined all of my React testing articles into a single book, polished it up, made a bunch of codesandboxes for people to play with, and put it up on Gumroad with "pay what you want pricing", and ended up having 1353 people download it, and I made $143.99 USD in donations after fees.

As I wrap up the year, I made $865.93 USD from technical writing alone.

So I wrote another SaaS

As I mentioned earlier, I decided to write another SaaS after realising consistent content marketing could be valuable for driving traffic.

As well as that, I found my technical writing business to be incredibly manual and repetitive - I would write articles to get email subscribers, write more articles to send them to email subscribers, and eventually write an info product to sell to my most interested subscribers while continuing to write new articles for my email subscribers.

My thinking at the time was that at least with a SaaS the product could continue to exist and maybe even pay for the content marketing with recurring revenue.

Picking a name

Over the years I've built several SaaS products, and kept their marketing sites online even after I shut down the SaaS behind them.

Only OnlineOrNot (my GraphQL API checker I built and killed in 2019) continued to slowly get enquiries after I shut it down (and not just from folks looking for GraphQL API monitoring, but web monitoring in general).

It didn't take me long to realise that:

  • There was a problem to be solved here
  • I had personally experienced the problem
  • I had leads for potential customers from my professional network
  • I could probably find people willing to pay for uptime monitoring, even if it was the 200th alternative to Pingdom

Side note - on doing something other people are doing: I was not the first person to write about React, and yet people were still interested in what I had to say. Similarly, I am not the first developer to try to solve uptime monitoring, but my bet is that my take on the problem is unique enough that others will find it valuable.

The approach

I gave myself one week to ship.

It took me a few hours to have a simple webpage where people could enter their URL, and check if it was online from 12 cities around the world.

I shipped that simple webpage, and showed the internet. A few people followed me on Twitter out of curiosity, and I had a twitter thread going to keep track of my progress, and I still use that same twitter thread today for progress updates.

By the end of the week, I had:

  • email-only authentication and Google login via OAuth2.0: OnlineOrNot v0 login

  • a form to add URLs: OnlineOrNot V0 Form

  • a dashboard to see your URLs being monitored: OnlineOrNot V0 Dashboard

By the end of the second week, I added:

  • a Stripe integration to accept payments OnlineOrNot Stripe Integration

After about five weeks of development, I had my first paying customer:

OnlineOrNot First Paying Customer

I kept shipping, and I kept updating that Twitter thread, and I kept writing about my approach to product development, while also writing useful articles for my audience.

How it went

I'll save you the excessive details, as I've already written about it here:

The gist of my approach is shipping the absolute minimal viable feature as soon as possible, using content marketing to drive traffic to my site, and working approximately two hours a day before work.

I'm ending the year with OnlineOrNot earning an ARR of $3000 USD (having gained back some MRR I lost recently), and I've used some of that revenue to pay for a MacBook Air M1 (effectively bought thanks to strangers on the internet), which I'm using to ship things even faster.

Prior to buying the MacBook Air I was writing all my code and articles on a 2011 13" MacBook Pro, and while I appreciated the heat in winter, it was SLOW.

Total Internet Revenue for the year

Technical writing brought in $865.93 USD, and Stripe tells me that OnlineOrNot brought in $1989 USD between April and the day I wrote this article, so about $2854 USD for the year in total, entirely from strangers on the internet.

Now you might be thinking, "if you put in three months of writing effort for $865.93, if you kept going for the whole year you'd have almost $3500", which is a fair point, but writing revenue isn't necessarily recurring.

I managed to have a burnout, not work on OnlineOrNot for nearly two months while I got married and moved my entire life from Sydney, Australia to France during a pandemic, and OnlineOrNot just kept monitoring my customers' sites, and bringing in revenue. Of course the business didn't grow while I was away, but it didn't fall to pieces either.

Advice for fellow makers

Don't try to do a SaaS, especially not for your first paid product.

Actually writing code is perhaps 10% of the total work of running your own SaaS. If you just want to write code, consider selling a code solution to a common problem instead (see Tailwind UI or Divjoy as an example).

Selling people an info product once is significantly easier than trying to sell them a subscription.

Once you understand how to sell someone a thing once, it becomes significantly easier to understand how to sell someone a subscription.

Once you do start building a SaaS, make sure it's a problem you actually care about, because you'll be thinking about the problem space for years to come.

Similarly, make sure you're solving the problem for a group of people you actually care about, because you'll be working with the same group of people for years to come.

Want to keep following my journey? You can find me on Twitter @rozenmd

Working on a little end of year post
Working on a little end of year post https://t.co/lWZAkyuhJm