This is the story of how I bootstrapped Caster.IO to $7,500 MRR with WordPress and without writing any code.
At the peak of Caster.IO it was pulling in 16K MRR with profit margins in the 60-70% range. The site is now defunct and shut down (shut down in 2021). The domain was sold to a streaming company. See web archive for screenshots for the original Caster.IO product that I’m talking about in this post.
Utilizing the same tools below you can recreate the exact same thing I created. Beware though, its not withouts its challenges. Let’s dive in …
What was Caster.IO?
Caster.IO was a membership based tutorial site focused on Android, Web and IoT Developers. We created highly technical and highly professional training video courses to teach developers how to program various things. From design patterns, to new technology to dependency injection and build systems and more. For example, my free Kotlin course was actually a course on Caster before I shut down the platform.
Members paid a monthly fee to get unlimited access to the library of course content ($29 a month for an individual or 99$ a month for a team).
Courses were broken down in to small bite sized lessons so that they were easy to consume.
Each lesson of a course was no more than 12 minutes long. It was preferable if the lessons were under 8 minutes long as people have short attention spans and something about seeing 10+ minutes on a video scrubber turned viewers away. But less than 10? They were in. You could easily eat your lunch, take a break or learn something new in a quick 10 minutes or less.
At the peak of the platform I had over 30 instructors teaching various courses. I had part time staff to help with support and operations as we grew. I would grow the instructor base by vetting and onboarding new instructors myself.
I had a created a course for new instructors to follow so that they could learn how to create great high quality screencasts. This, along with our QA process kept video and audio quality very high. This would ensure that they knew how to use the tools to create great content. I sent every instructor a high quality audio setup and I know many of them still use this equipment to this day, years after we have shut down.
So thats the elevator pitch of what it is…
But … how and why did it start and what tools did I use to get to 7K MRR?
Lets get to it …
Humble Beginnings and Not Writing Any Code
In 2015 I noticed that sites like Pluralsight (which I was an instructor of – but I never shipped any courses because I started Caster) only had basic courses on Android. They didn’t have anything that dove deep into the topics I got asked about a lot – Dependency Injection, Design Patterns like MVP/MVI/MVC, etc and so forth.
At this point in my life I had shipped dozens, if not hundreds of videos for sites like TekPub (which was acquired by Pluralsight), DimeCasts and videos for my own blog or clients. So knew how to teach via video. So I wondered …
What if I created a video series that showed how to to do the advanced nuanced stuff that no one talks about? Like Dependency Injection and the MVP pattern, and Unit/UI Testing and so forth? … Would anyone pay me for this?Me
I really wasn’t sure if anyone would, but I felt it was worth exploring.
With that in mind I set off to build a solution that would allow me to test my hypothesis.
Coding Not Allowed
The main criteria to test this business idea was that I was not allowed to write any code while starting out.
I’m a software developer and I love writing code. I can get lost in the code and the nuance of it and I could easily spend time all my time in the code and that will not help in validate the idea whatsoever.
So I decided to impose a rule upon myself …
You can’t write code until this business makes a decent profit. The only time you can write code is when a task becomes insanely painful to do manually.Me
“Decent profit” is subjective, but I knew in my head that it meant thousands of dollars; 2k-3k minimum.
Why did I do this though?
Because this was not my first rodeo.
By this time I had created numerous online products and one of the traps I often fell into was spending all of my time writing code.
Coding is 25-35% of the problem. The rest of it is sales and marketing.Rob Walling
This is in relation to building a successful software product (including membership sites like mine).
In other words, the age old saying “Build it and they will come”, is bullshit.
You need sales and marketing to make it work. I absolutely agree with that. You can build something, but if no one knows about it, how is it going to be a success? Who’s going to buy it? How customers end up finding out about you is “sales and marketing”.
I had recently come off of two unsuccessful SaaS apps that I had written, all code based. One was some gym management software (which is a story in itself), and another was on demand landscaping services. I had spent a ton of time writing code and automating things for these when I should have been finding product market fit for both of these. One actually did have product market fit, but I shut it down too early. Again. A story for another time.
What I’m trying to say is this – I would have saved a ton of time and money had I focused on sales and marketing more than coding.
So, I resolved to “not write a single line of code” while testing this so I could focus on the main problem area: sales and marketing.
Tools I Used to Ship It In Under 1 Day
In order to ship I needed:
- A way to put content online
- A membership system
- A way to lock things behind a paywall
- A way for customers to login and view the paid content
- A way for customers to manage their payment accounts
The tools I used to do this were:
- WordPress: Content Management System, hosted on WPEngine
- RestrictContentPro: A WordPress Membership Plugin that handled payments and accounts (with Stripe as the payment processor) and restricted access to content based upon subscription status.
- Wistia: Video Hosting and Video Analytics
This same exact product combo will still work today.
How I Shipped New Video Content
I needed a way to get the new video tutorials behind a paywall. Here’s what I’d do:
- Create and record the video tutorial
- Upload the Video to Wistia
- Copy the Embed code from Wistia
- Create a new WordPress Blog entry
- Paste the Embed code into the blog entry
- Use RestrictContentPro short codes in the WordPress post to restrict the video to only paid members.
- Add some copy describing what the video was about and make an image that would be the teaser image for those not logged in or non-paying members.
That’s it. Hit publish and then start marketing the video.
Not one line of code had to be written – mission accomplished.
I started releasing one video a week. Within 4-5 weeks I got my first paying customer.
Fun fact, this customer stayed a customer the entire time the company grew and once I hit a particular MRR milestone I gave them free lifetime access to the content because he was one of the reasons for success – the first paying customer does wonders for your confidence and drive to continue to work on the product.
The Path to 1K MRR & Burnout Signals
Getting to the first $1,000 MRR wasn’t overnight. It took about 40-50 paying customers. This is very much in line with the Long Slow SaaS Ramp of Death we’ve seen. It’s a slow grind.
My initial pricing was $19 a month and was this way for the first 3 years. I built to 7K MRR with 19$ month plans (and a $179 yearly plan). After that prices went up.
When I got to about $400-500 MRR I realized doing weekly content creation was starting to burn me out. At this time I had been doing online videos for close to 10 years on and off. I knew that continuing to do this long term I would definitely burn out and I’d hate doing it and the business would fail.
It was then I decided I needed to hire other instructors to help grow the business. So I did that. I decided on a profit share model that was similar to how other online learning platforms did things. The short of it is this: the more popular your stuff is, the more you make. Pretty easy.
So I ended up hiring 2-3 instructors over the course of a few months. This helped me get to 1K MRR finally.
From 1K to 7K MRR and the Psychology of Passive Income
I repeated this process over and over (hiring instructors) until I hit 7K when I wrote a custom site to help us grow more.
I know I said I didn’t write a line of code until 7k. Well … that was a little bit of fib. I did write one Ruby script that ran every night via a cron job. I wrote this probably around the 1K MRR point because doing it manually was beyond time intensive and was killing my productivity and desire to work on the business (which is a pretty good signal its time to automate).
The script would perform the calculations of how much an instructor made the prior day. I would then use that to calculate their profit share amount and divide it by the number of days in the month. The ruby script would then send them an email every morning at 4-5 am ET that looked sort of like this:
Howdy <%= first_name %>,
Your estimated profit share for this month is: $<%= estimated_compensation %>Caster.IO Nightly Email
I’ve left out other details in the email, but the estimated profit share was the important part.
When the instructor would get up in the AM, they’d have an email from the system that said “you made X amount of money”: AKA: They made money while they were sleeping.
This has a huge psychological benefit to it. Now, as long as the profit of the company is flat (or increasing) the number the instructor sees every morning will increase (sans some other factors). Remember, it was a cumulative total based on day of the month. So if today is the 4th of the month, it would be the total from the 1st + the 2nd and the 3rd (excluding the 4th because the morning of the 4th day is when they get the email). The number increases everyday (again, sans some other factors).
This gave the instructor a nice psychological reward that they’re making money while they sleep, because they are. Many instructors would wake up and check their stats every morning to see how much they made. Passive income realized.
Seeing this number go up every day and having it delivered to you every morning is an amazing feeling and many instructors told me they loved seeing it in their inbox. Who doesn’t want a daily email saying “here’s some money”?
Finally Writing Code
From there it was mainly an exercise in rinse-wash-repeat. Find a great instructor who wants to build a course that should sell, onboard them and get the course done. I did this for a handful of years until late 2017 when the WordPress solution was showing its cracks.
At that time users were requesting features such as progress tracking, comments, course history, certificates of completion and more. There was not an LMS that provided what I needed out of the box. It was finally to the point where I needed to write a lot of code to solve these problems.
I had a team in place to help with support, instructors working on new courses to keep the pipeline of content fresh and revenue coming in – I had time and resources to make this happen. By this time we were over 300 paying members and growing daily, not a ton, but hey, 300 paying members is 300 paying members!
Around May/June of 2017 I decided it was finally time to create our own platform. I hired the designer that made our icon to design our new site with Material Design in mind and I soft launched it on Thanksgiving day 2017.
The new site was powered by Ruby on Rails. I migrated everyone over from WordPress and RestrictContentPro to our new Rails system and then we raised prices to $29 a month when the new site finally went live a month or so later.
From 7K MRR and up …
As you can see, there were only a few tools that I used in order to create a working solution that allowed me to scale up to 7K MRR. I could have pushed it further if I got creative with some more WordPress plugins, and I’m sure you can do more nowadays with the many options available.
Eventually the site would peak up to around 16K MRR before churn and growth trajectories intersected. This is where growth and churn were canceling each other out and growth stagnated.
In a future post I’ll talk about the challenges I faced in running Caster from 7K-16K MRR as well as many of the things that led to me shutting it down, things I would have done differently … and why I didn’t sell it.
Sign up below to get notified when I drop the next Caster post.
Thanks for reading.