2021 was a real mixed bag. It was my first year trying to figure out what I want my indie business to look like. I’d been comfortable with web development as my sole income stream for 16 years. In 2020 I was contracting 4 days / week for a single client and using the rest of the time to (finally) take and complete the 30×500 course, which I had paid for in 2016. Taking 30×500 led me to start this blog in July 2020, begin publishing articles on Node.js, create a few videos, and slowly start building up a mailing list.
I launched an ebook in late December 2020 to 144 subscribers. The book sold 30 copies during it’s 4 day launch period, generating £356 in sales — I was over the moon to have shipped and made money from my first ever tiny product.
My big goal for 2021 was to create sustainable revenue streams that fall into two categories: client work and products. I planned to take on client work, consulting on Node.js, and build that into a stable stream of revenue. My thinking was that this would allow me to invest the rest of my time into creating free content (blog posts, videos), and into the creation and launch of another paid product.
A year of firsts
Moving away from the stable income of contracting and trying to create a sustainable long term business often felt overwhelming. Feeling totally out of your depth learning new skills, while being uncertain about whether this stuff will pay the bills, can be pretty stressful.
Despite all of that, I felt incredibly privileged to be in a position where I could experiment with things. This opportunity to experiment meant that 2021 was a year of firsts for me:
- I gave a talk at the JS Monthly meetup in February. For me this was an opportunity to practice putting together a talk and to try and build up some confidence with public speaking. I was nervous as hell as beforehand, but the talk went smoothly and it felt really good to get the ball rolling with This Sort of Thing again (the last time I did any public speaking was probably around 2014). A huge thank you to co-organiser Aris for inviting me to speak, as well as to the lovely folks who showed up to support me!
- I was invited to write a paid article for SitePoint in March. This was the first time I’d been paid for writing words that aren’t code. Keen to impress, I spent far too many hours working on the article, but I was really happy with the outcome and the experience.
- I ran a free workshop on Zoom in May. The workshop showed developers how to get started building Node.js applications with the Fastify framework. Around 70 people signed up to my mailing list for it, and ~23 people joined from around the world for the hour long workshop. There were lots of great questions and discussion in the Q&A part at the end and folks seemed to really enjoy it.
- I gave my first ever conference talk in October. The talk was at NodeConf Remote 2021. It was exciting and nerve wracking to be speaking alongside so many fantastic folk from the Node.js community. Giving my first conference talk was one of my "it would be really cool if…" goals for 2021, and I’m very happy that I was able to do it. I feel much more confident about the idea of giving conference talks in future.
- I launched my second product, a hands-on workshop called Node Validation Essentials in November. I ran the workshop twice in December. It was a lot of work, but I learnt a ton and really enjoyed pushing myself to create something completely different. I’ve written more about this below.
In short, the consulting revenue that I’d hoped to build up in 2021 didn’t work out. I spoke to a couple of prospective clients in the first part of the year, but those didn’t materialise into paid work. Business savings I’d made from contracting in 2020 allowed me to work on non-client things from January through until May, such as creating free content and running the free Fastify workshop. These all had a positive impact on building up my mailing list.
In mid May I picked up a 4 day / week development contract as I didn’t want to risk running the business bank account down to zero. At the time, taking on almost full-time contracts felt like a failure, but in retrospect it was just another learning experience. It’s clear now that I didn’t have a realistic plan for finding or acquiring new clients. The UK lockdown in the first few months of 2021 really took its toll on me mentally, and only amplified the anxiety I had around trying to build up client work as a revenue stream.
My mental health wasn’t in great shape by the end of May. I took a couple of months out from creating any new content and focused on contracting, as well as taking some time off over the summer for a much needed break.
Between mid May and the end of October I took on two different contracts. Those 5.5 months of contracting allowed me to "buy back" my time in November and December, and have given me some runway for the first few months of this year.
As I mentioned earlier, 2021 was the first year I took on paid technical writing work. Most of these opportunities came about as a result of my regular blogging. I received emails from the editors of several sites asking if I’d write for them as they liked the content they’d seen on my blog. If you’re interested in getting paid for technical writing I’d recommend taking a look at Who Pays Technical Writers?.
I’m currently in the process of systematising the way I approach technical writing work. My goal is for this work to generate a baseline amount of revenue every month, while keeping it limited to a couple of days each week. I get to practice and hopefully improve my writing skills, while also taking a step towards generating a sustainable revenue stream.
Revenue from technical writing in 2021: £709
Ebook: Express API Validation Essentials
After the launch of my ebook Express API Validation Essentials in late December 2020, I did a pretty shitty job of marketing it. I think the most I did was add a ‘Book’ link to the book’s website from the navigation on my blog. It wasn’t until April that I actually pulled together A Guide to Express API Validation which promotes the book. I also put the book on sale on the Learnetto platform in April. That yielded a handful of sales, but overall I think my time could have been better spent working on generally improving how I market the book.
To celebrate the 1 year anniversary of launching Express API Validation Essentials, I put the book on sale for 48 hours on December 21st. It was a nice opportunity to improve the book’s website by including a table of contents and a sample PDF for people to download.
The anniversary sale generated 9 sales of the book. The biggest learning for me was the popularity of PayPal as a payment method. Previously I’d only accepted payment with credit or debit card (via Stripe), but I enabled PayPal as a payment option in PayHip — the sales platform I use for the book — after someone requested it on Twitter. To my surprise, 7 of the 9 sales were paid for via PayPal. It seems like a no brainer to enable payment via PayPal whenever I can in future.
Although I could still be doing a better job of marketing the book, I’m pretty happy with where things are at for now. I’ve got a few ideas around expanding and relaunching this book in 2022, so I don’t want to put a lot of new effort into marketing it in its current form.
Revenue from the ebook in 2021: £175 (after deduction of transaction fees by Stripe, PayPal and PayHip)
Workshop: Node Validation Essentials
I’d like to create and launch a self-paced course in the future (2022?!), but a couple of folks recommended running live workshops to me as a good way of testing and refining lessons and exercises. A course can come later once everything has been tested and improved with feedback from workshop attendees.
Over the period of a week, I sent out a sequence of launch emails to my subscribers with helpful content related to the workshop. I then put tickets on sale, selling a total of 4 tickets. I ran the workshop remotely via Zoom on the 2nd and 7th December.
I really enjoyed creating the lessons and exercises for the workshop. Delivering the workshops was pretty exhausting, but they were a lot of fun thanks to the small groups of engaged and friendly attendees I was teaching.
Creating and launching this workshop, my second product, was a really satisfying way to wrap up 2021. I learnt so much, and I’m now working on plans for running it again in 2022.
Revenue from the workshop in 2021: £455 (after deduction of transaction fees by Stripe and Tito)
Traditional book publishing
I received offers from two traditional publishers to write books for them, and turned both of them down. It felt really weird to say no, but those opportunities didn’t make sense for me in the context of trying to build a sustainable indie business.
Creating free educational content falls under my general approach of "try and give away as much as I can for free". I’m really happy with what I was able to create in 2021. My biggest learning was discovering the power of remixing and reusing content across different mediums.
I started using Twitter as a place to develop ideas and get early feedback, then expanded them into longer pieces of content that I sent to my mailing list, then as a final step I published that content on my blog. Each of these stages allowed me to iterate and improve on the content, and removed the pressure of me feeling like I needed to continually be pumping out brand new original content all the time.
While the dopamine hits that likes and retweets bring feel good, I’ve become wary of paying too much attention to any kind of metric on Twitter. It always feels like a battle against their black box of algorithms. I think the only way to win is to not play the game. I’ve found Twitter useful for testing out and developing ideas, having interesting discussions, and keeping in touch with what’s going on in the Node.js community.
I started the year with 389 followers and ended with 924. What does this mean? I’ve met lots of new people on Twitter and had some really lovely conversations, but I won’t be becoming a member of the Tech Twitter grifterati.
I published 19 blog posts over the year. These were a mix of full length articles and "quick tips". At the beginning of the year I was trying to write and publish on a schedule. This sucked and created unnecessary pressure, so now I only publish a blog post when I actually want to. Quite the life hack!
According to Plausible analytics, my site saw 80k unique visitors in 2021, which frankly is amazing to me. Over 50% of this traffic came from Google, which is satisfying as I’ve not made any specific efforts around SEO. My magic formula is: write well researched, practical content that helps Node.js developers. It seems to be working.
Here are the three most popular blog posts that I published last year:
I recorded and published 3 tutorial videos in 2021, all of them about the Fastify framework. I published these on Vimeo and embedded them on my own site, rather than uploading them to YouTube. I’m not a fan of YouTube for a number of reasons, but it’s great to see from the comments that folks are still getting value from the Fastify videos I uploaded there in 2020.
I haven’t published any new tutorial videos since May last year as I’ve found them to be really time consuming to create. I expect I’ll create more video content in future, but for now I’m happy to focus on other mediums.
I sent out 15 newsletter emails to my subscribers in 2021. I got bored of the tip / featured content / three links format that I’d been doing since my second newsletter. I stopped usng this format in June and my emails have been pretty fluid in structure since then. My main focus is on making sure that every email I send delivers value for the people reading it — the structure is secondary.
My mailing list grew 343% over the year from 152 to 526 subscribers. I’m very happy with this growth — it feels like a positive result of all the work I put in to creating helpful free content.
Plans for 2022
My plans for 2022 are still a work in progress, but here are a few things I’m currently focusing on:
- Paid technical writing for a monthly baseline of revenue.
- Spinning off a shorter, lower priced workshop from the Node Validation Essentials workshop.
- Running the Node Validation Essentials workshop again.
- Launching the Refresh show with my friend Kevin, where we’ll be talking about indie business things (hopefully with special guests too!).
- Continuing to create and publish free educational content for Node.js developers.
If you made it this far, thanks for reading, and thank you for your support!