2019 was my first full year running Alchemist Camp as a business, and it enjoyed some impressive growth. Looking back at my spreadsheets, it's been about a six-and-a-half fold increase in terms of revenue and more than that for profit. (Disclaimer: These numbers haven't been audited and are simply what I've pulled from various accounts and spreadsheets. The year isn't quite over, either)
Alchemist Camp is a site with a lot of screencasts and some written tutorials for people learning the Elixir programming language. Most of the materials are free (and even shared on YouTube), but many are restricted to paying subscribers. Nearly 100% of the site's revenue comes from those subscription fees.
Okay! Let's have a look at the stats...
# Financial stats
- Paying subscribers: 94
- Lifetime retention: 65%
- Time to 50% churn: 14.2 months
- Gross Volume: $13.950.53
- Expenses: $4,940.66
- Profits: $9,009.87
- Wage per hour: $18.37 (and ~1 twitter follower)
- Wage per hour (last 3 months): $28.44
# Expenses Breakdown
- Digital Ocean: $114
- Domain names: $76
- ConvertKit: $98
- AWS SES: $2.63
- Stripe: $873.09
- (Services Total: $1163.72)
- Technical books: $235.94 (Mostly Manning and No Starch Press)
- Screencasts: $259.00 (GoRails, Laracasts and VueSchool)
- Courses: $3602.98 (30x500 was over half of this)
- (Educational Total: $3776.94)
Yes, I realize it's a bit unusual to see education included in the breakdown, but the courses were each aimed at helping people build just this kind of business. The books and screencasts are motivated by improving my skills as a developer and a teacher.
# Traffic-related stats
- YouTube Views: 61.1k
- YouTube Watch Time: 5k hours
- Monthly Unique Visitors: ~10k (excluding bots)
- Bots per month requesting /wp-admin: 1722
- Accounts created (all time): 2076
# Big wins
- Sustained gradual improvement of the web site features, recording process and my own education.
- 30x500
- Automation
- Feature voting
- Podcasting, at least when I manage to do it.
# Sustained boring improvements
For the most part my biggest win was just repeatedly showing up and ekeing out small improvements. My recording process is slightly more time-efficient, the audio quality is a bit better, I've added a few features to Alchemist Camp and I've dug into more topics related to what I teach. The code base has improved, too.
# 30x500 was worth every cent
There was one huge win, though. I took a course for online entrepreneurs called 30x500. It's been around forever. I'm pretty sure I read about it back when I was still an English teacher in a past life.
I never had much interest in buying it though. It was strident, opinionated and I just didn't agree with a lot of the ideas in it. I basically dismissed the expensive program that didn't resonate with me, kept reading PG essays and went about moving into software, first working at a startup in Beijing and then at a few in the SF bay area.
But then this spring, a funny thing happened. I got sucked into this long-running podcast called Techzing and started listening to the archives (which go back ten years) and I heard some interviews they did with Amy Hoy.
The interviews were great and got me thinking. A ton of people had taken the course and gone on to build successful businesses. 30x500 doesn't have any affiliate programs and yet it seems every time someone asks about it on Reddit, well-known entrepreneurs jump into the thread and vouch for it. Some I've followed and corresponded with, including @patio11 and Nathan Barry, have become far more successful and given a lot of credit to the system.
This was sign that my model of the world was off. The fact that the ideas didn't resonate with me meant I had an especially good opportunity to learn things my filters would normally cause me to discard. And it was.
Since starting Alchemist Camp, I've seen a remarkably smooth growth in audience size, revenue and profit. It's so smooth that drawing a straight line from my first sale to when I started really implementing some ideas from the course, there's remarkably little variation.
Afterwards, things have gotten much spikier and much, much more profitable. A lot of the course was a deep dive into how to better understand one's audience and customers, and it did include some hard work and some stuff I've tended to avoid—like writing an email "launch" sequence.
Based on my current estimate, 30x500 has earned me $5,200 I wouldn't have earned if I hadn't taken the course which puts me thousands of dollars ahead despite its hefty price tag. I strive to share enough value to my Elixir-learning students that it's a similarly clear win for everyone who puts in the work.
# Automation
Automation is amazing. I love it so much I recorded a whole solo podcast about it. There are certain areas of ambitious automation where people over-invest but a lot of others where they don't enough at all.
With Alchemist Camp, I've started everything very manual (even password resets, at first!) but then over time slowly automated more and more pieces. Much of this is tooling-related. I've got CI/CD set up so that any time I git push
or merge to master, the tests will run and if they pass the new version my site is automatically deployed.
I'm also doing some less common automations. I've made dozens of custom code snippets in VS code and half a dozen physical keyboard macros for common incantations and even a gradualy extended Markdown into a higher level language that's designed specifically for Alchemist Camp episode pages.
A lot of this stems from my extreme repetitive stress injuries. At their worst in 2017, it was so bad that it even hurt to brush my teeth. For most of 2018, I kept my keyboard time to under 15 hours a week and did my best to avoid phone usage. I'm 75% healed at this point, but the progressive automation I've done over the past year and a half continues paying off.
# Feature voting
I implemented a gamified feature/content voting system in May. Basically, I created a virtual resource that's used for voting on new screencast content and new site features. Paying members get more voting power and requests are weighted by how much work they are.
This has both helped me save some time and elicited direct feedback from my audience that I wouldn't otherwise have heard.
# Podcasting
I've been super erratic about podcasting. I see very little chance that it will turn into a business of its own, but do count it as a win. Doing podcasts has given me the chance to have extended conversations with people who have built successful software companies all the way to a successful acquisition—like Feedback Panda and Drip. There's a lot to learn and I've gotten great reading recommendations from them, too.
# What didn't go so well
- Top of line growth
- Wrist health is improving but more slowly than I'd expected
- Churn
- Hesitation
# Top of line growth
My audience is growing... at a maddeningly linear rate. My site traffic and youtube subscriber count has been picking up, but far more slowly than seems reasonable given the steadily increasing vault of lessons I've been building.
Some of this is probably due to the fact that people and YouTube are both biased towards newer content. Fortunately Elixir is has been a very stable language past version 1.0, but a few (maybe 2%-3%) of the Phoenix topics I've covered changed during the 1.3 -> 1.4 version bump and JavaScript library churn is regularly breaking things in old tutorials.
(Don't think I didn't notice what happened going from v 7.x to v 8.0, sass-loader
!)
One other potential factor is increasing competition. It seems like another person making Elixir videos pops up every couple of months. On the other hand, more people making great resources may be exactly what helps grow the language! Ultimately, I don't think competition is entirely zero-sum for this kind of market or that it's worth spending many mental cycles on.
# Wrists
Injuries that limit using a keyboard suck for a programmer. Most of my problems are self-inflicted from poor egonomics as a digital nomad in 2015-2016 and then working on a startup I couldn't quite get past the first round of small SAFE notes during most of the following year. The good news is that the wrists are getting much better.
The bad news is that it's the end of 2019 and they're still not fully recovered! I've done varied stretching routines, targeted exercises, moved to an ergonomic keyboard and tried (not always successfully) to limit my computer usage time. It's really been a longer and tougher path than I'd ever expected. So, if you're invincible-feeling 20-something hacker/nomad type reading this, please take heed! Laptops have horrible ergonomics. If you're going to do a lot of work on one, seriously consider an external keyboard. Prevention is way easier than repair.
# Churn
For a long time, Alchemist Camp had zero churn. I've raised the prices for Alchemist Camp several times though. At the very, very beginning, it was $12/month or $96/year, then I raised it to $15/month or $135/year, then $18/month or $162/year and now it's $21/month or $210/year. The churn rate didn't go up for the first few increases but it definitely has after the past two. There are even some newer cohorts with higher total churn than ancient cohorts who have happily happily paying $12 or $15/month for 16+ months.
I have three plans to combat the churn.
First, I'm not raising prices in the near future. I'll just keep it where it is and continue making more tutorials and adding more features to the site—thus offering a higher and higher level of value for the same price.
Second, I'm working on upping my email game in order to help people build habits around my tutorials. One of the more frustrating kinds of email to get is one from a long-time subscriber who says they're planning on going through a series I made months before but they haven't gotten around to learning any Elixir yet. It's great that they're motivated and want to stay subscribed, but if they don't actually use the learning materials then they're not getting any value from me beyond the kind of responsible feeling one gets for maintaining a gym membership they almost never use.
# Hesitation
I'm getting a lot better about this, but for some reason I'm holding back on taking some actions I know would be good for me. I should have launched my 2nd product already, but got bogged down reading three books on API design I bought.
Since doing 30x500, I dove into podcasts, books and other educational content from some of its successful students. Two ideas Nathan Barry put front and center in his book were "Work in public" and "Teach everything you know". But it took me months before writing something like this piece. Similarly, Brennan Dunn's courses have completely convinced me that it's worth it to set up some automation systems around emailing and better understanding my customers. Obviously, I can better serve someone learning Elixir from me if I know how much experience they already have with it what they're using it for. Once again, it took months to start moving on that.
# Goals for 2020
- Double gross subscription sales to $28k
- Keep lifetime retention above 60%
- Launch the second product I've been working on before the first of March
- Finally travel to the US for an Elixir conference
All in all, I'm feeling like it's going to be a pretty good year. I'm going to continue doing what's working, and keep investing in the long-term.