My name is Chris Oliver, and I'm a software developer in St. Louis, Missouri. I've been working on GoRails — an education site for Ruby on Rails developers — for four years.
Today, GoRails makes about $15,000/mo.
Before 2014, I was working as a Ruby on Rails consultant for many businesses and startups. I'd gotten tired of trading my time for money and decided to take a domain (gorails.com) I had been using to document my Rails practices and turn it into a product.
Originally, I documented things like how to setup Rails on a Mac and how to deploy Rails to Ubuntu on GoRails.com. These were just notes for myself that I would keep updated and quickly other people started to reference them. This generated several thousand visitors in the first month, and I realized I had and audience there that I could work with and sell products to.
My first iteration was to build courses for the Rails developers visiting GoRails. It made sense to me, and I set out to record two initial courses. What I didn't realize was just how hard screencasting would be.
It took me five months to plan, record, edit, and complete the first two courses. This took way more time than I expected because I just wasn't very comfortable recording screencasts. My daily routine was to record 15 minutes of video a day whether or not I threw away the recording later. I just needed the practice to create content I was happy with.
On the sales side of things, GoRails.com was already live as a Rails app with a few static pages for the tutorials I had previously published. To sell the courses, I built out payments with Stripe and the course functionality to watch videos using Wistia, track your progress, etc. That didn't take very long since I had built similar things before.
Initially, I launched these two courses and got about one sale a week. After two months and only nine sales, I realized they were going to require a lot of marketing to make them viable for me to continue. Instead, I decided to pivot to offering the videos as weekly screencasts. Railscasts had become defunct a couple years before and left a huge missing gap in the Rails community so I figured that would be an easier way for me to market my videos. The second day after pivoting I got 14 new subscribers and I knew then that I was much more on the right track.
Since I had been publishing content to GoRails for a year before I launched the paid courses, I had the advantage of all the SEO and visitors I had built that year. During that time, I was collecting email addresses of people interested in learning more about Rails. This gave me an audience I could launch to from day one, which was incredibly important to give me some confidence as I launched.
After getting some initial traction, I had to come up with a way of marketing my screencasts. The way I solved this was by pivoting to weekly screencasts and releasing a free one every other week. This let me share quite a lot of content on places like Reddit, Rubyflow, and to my email list. I knew those users would check out the other episodes I offered and hopefully subscribe to the paid content eventually.
I would say the majority of growth of GoRails has just been from this free content. If I cover a popular topic, it often gets shared, and if I cover a library, the authors love to share the videos as well to get more usage of their own work. I'm uploading the free content to YouTube which not only gets me an audience there but also saves me from some very high video hosting costs that I would incur if all the free content was hosted on Wistia. It makes for a nice way of building the community and the customer base at the same time.
Another important feature I built was a forum for subscribers to ask questions. I've since opened this up to the public, but originally it was only for paid subscribers to keep the quality of questions high at the beginning. I wanted to offer Rails developers a place to ask architecture questions or questions they couldn't get good answers to on StackOverflow. This gave me a way to publicly answer questions (instead of over email) which not only helped the person asking the question, but also anyone who might stumble across the thread via Google.
I've spent hundreds and hundreds of hours answering Rails questions on the forum, email, Twitter, and on StackOverflow. I'm not doing this to push people to GoRails, but just help out — and if people find my answers helpful, they're probably going to check out what I'm working on and end up on GoRails at some point.
Primarily, GoRails makes money through subscriptions. I offer individual and team plans and discounts for yearly subscribers. When I started GoRails, I just copied the Railscast pricing of $9/mo and quickly realized how much work it was to earn another $100/mo. It takes a lot of volume to make a living at that price point. Since then, I've raised the price to $19/mo which makes for a much more sustainable business.
Initially, I only accepted credit card payments with Stripe, but I've since added PayPal support which has grown to be close to a third of my revenue. There are a lot of customers worldwide that don't have credit cards to pay, and I was previously just ignoring them. While PayPal gets a lot of hate, it really opens up your potential market of customers if you have a product with international appeal.
Growth has been very steady the entire lifetime of GoRails. The one exception to that was when I decided to raise the price from $9/mo to $19/mo. I made the announcement of the price change during Black Friday and told anyone their "discount" was to buy now and lock in the $9/mo pricing forever. After that, they'd have to pay the new $19/mo price. I about doubled revenue that month from people locking in the old pricing.
Today, GoRails makes about $15,000/mo between Stripe and PayPal subscriptions. My only expenses are:
I also use DigitalOcean for hosting, but this ends up being free from the referral links I have shared in the GoRails tutorials.
My future goals are actually around launching new products. I've already launched one called Hatchbox.io that is a way for Rails developers to deploy Rails to their own servers extremely easily. It's a great way to save money compared to something like Heroku, and it's a great upsell to any GoRails customers.
I'd also like to try changing a few things on GoRails. With the volume of content a weekly screencast produces, customers often get overwhelmed. There are generally two buckets of customers I've found: people who want to continually learn and people who are looking for an answer to an immediate problem. The monthly subscription business model doesn't really fit both customer types, and I'd like to explore some other business models to see if they work any better. That might be selling courses alongside weekly screencasts, mentorship, etc. I'm basically going to spend each quarter this year trying a new idea and seeing how it plays out. I'd love to better serve both groups of customers.
In the first year, my biggest challenge was paying rent. By August, I had launched the monthly subscriptions and was making $450/mo. That wasn't a bad start, but it certainly didn't make up for the past eight months with virtually zero income. I ended up getting a job for a year and continued to make screencasts on the side.
After that year, GoRails was making about $3,500/mo which was much closer to a livable income. Since I live in St. Louis, MO, my living expenses were quite low, and I was able to go back to working on GoRails full time the following year.
Now that GoRails is more established, churn is the major challenge. Rails isn't the hot new framework anymore, which makes sign ups significantly slower than if I had a focus on React, Vue.js, etc. Also, education businesses in general have to deal with a lot of churn. In a way, you can compare us to gym memberships. You pay to get access to things, but you've still got to do the hard work yourself whether it's working out or solving problems in code.
One of the most important things for me was to learn about the Jobs To Be Done framework. It's a really fantastic perspective that gets you into your customers shoes and thinking from their point of view to figure out what you should be doing. If you're interested in this, check out the book Competing Against Luck by Clayton Christensen.
Another habit I've developed over the years is watching how other businesses operate. I subscribe to several mailing lists, like Ramit Sethi's, simply to watch the content and learn how his style of email marketing turns into millions of dollars in revenue for them. I also spend a lot of time looking at other businesses like Twitch and YouTube and seeing how their top content producers are making things work. Watching your competition won't give you many creative ideas that give you an advantage, but successful businesses in a tangentially related space can.
It should be obvious, but you should spend more time getting to know your customers than you think. Learn about their goals and what they're trying to accomplish with their businesses and you'll immediately start seeing opportunities for you to improve your products to help them achieve their goals.
The other thing I want to mention is patience. It's going to take more time than you think it will, especially if this is your first business.
A lot of people wonder what it really means to have "product market fit". This term is really vague and hard to describe. What I would say is look at the small pivot I made between selling courses and weekly screencasts. I went from something I was trying to push (courses) to getting 10 subscribers the first day and a bunch of requests for episodes.
The difference? I didn't change the content I was making, I just changed the packaging. When your customers are clamoring for more and dragging you forward, that's when you know you're starting to get more product market fit. Keep changing things until you find one of those moments.
You can check out GoRails at gorails.com, and for easy self-hosting of Rails apps, check out hatchbox.io.
If you'd like to keep up with I'm working on, you can follow me on Twitter.
I'm happy to answer any questions you guys have in the comments below! Thanks for having me on Indie Hackers!
Thanks for sharing this Chris. I'm learning a lot from you as I build Sailscasts.
Thanks for all that you do Chris. I use Hatchbox and I'm loving it. Makes my life a lot easier on the devops side.
Hi Chris! Thank you for your sharing. I learn a lot...
You said in the interview:
"Now that GoRails is more established, churn is the major challenge... Also, education businesses in general have to deal with a lot of churn."
Does it mean an online learning platform business, like GoRails or Treehouse, typically have high churn rate?
Thanks for sharing your business experience!
Yeah, they typically do. The reason is because these are "nice-to-have" products.
As a consumer, you're worried about your monthly expenses much more than a business is, so these are often the first products to cancel. Plus if you're successful at teaching someone, they don't have much reason to stay once they've learned what they needed.
Hey Chris, I enjoyed the read. Thank you!
I really like what you said about just working at it every day, even if you're terrible at first, because practice is how you improve. In the fitness market I've heard it said like, "it's okay to suck, you just need to show up."
Do you like ProfitWell's Retain so far? Has it been worth it? I've been considering it too, and comparing it against Baremetrics and Stunning.
What screen recorder do you use/like? My favorite so far is ActivePresenter.
Hey Johnathan! Definitely similar to the fitness. Just gotta keep going!
It's been worth it since credit cards fail an enormous amount on subscriptions, although it's basically just sending a few emails so it feels overpriced. Been thinking a cheap competitor needs to exist. Baremetrics and Stunning are similar pricing.
I've been using Screenflow since the beginning and absolutely love it.
Chris, you’re killing it! I’ve learned so much from you over the years. I'm always happy to see GoRails growing. 😃🦄
Besides the React, Vue.js, etc + Rails content on GoRails, are you considering replicating the same screencast method into other technologies/frameworks?
Can we expect GoReact?
Hey Lauro! Great to see you here. 🙌🤓
Very possibly you'll see a lot more Vue.js and possibly some Crystal lang soon...
This was good, man :)
@Chris, have you ever thought of doing a levelsio-like "12 startups in 12 months" project? I've often thought that it would dovetail really well with screencasts for devs since it would give you material for screencasts and the screencasts would give the mini-startups momentum.
Yeah, I have toyed with that idea too. If they were just for show in screencasts, that'd be one thing, but I don't think you could legitimately build 12 products and get much out of it. You wouldn't be leaving yourself any time to do customer development and grow the products. Plus you'd have 12 products at the end to maintain which would be a lot.
I'd probably rather do like one a quarter and see if I can make $1k/mo from it within 3 months. If not, try again next quarter on a new one.
Thank you so much for sharing this, Chris. It's a goldmine for me, since I started a similar project 5 weeks ago, for a niche language.
I also started on YouTube and in my very first video stated a goal of making half the content free, just as you have. I'm recording at a brisk clip and hope to grow my own mini, gamified version of your project.
One thing that scares me a bit about your interview though is the forums. I can only imagine the time demands and the expectation of quick responses that it could lead to. How much do you think it has boosted your paid subscriptions vs how much time it's taken?
Awesome, best of luck with yours! :D
The free videos will definitely help. As for the forums, I don't know that you need to worry about it. For me, it was to build a more tight-knit community and build up some trust that GoRails was a good place for people to go and get actually good quality answers for things. I have backed off answering so much and a lot of great community members have stepped in to answer questions with me. At the end of the day, it's another thing I can fairly easily offer that helps people learn more.
Hello Chris, i just want to know how your Screencasts differed from your Courses.These days development courses have screencasts included in them as well . So, i just want to know the difference.
My screencasts are usually 10-20 minutes long which means i can cover smaller topics. Courses usually are a couple hours long so they have to talk about something bigger. I'll still sometimes do series of screencasts to talk about something big but I don't have to.
Amazing Chris. Thanks a lot ! Also I need to tell the owner of the website, that the login with facebook does not work, I get an error app is still in development mode from facebook.
Really enjoy your site, Chris! I've used GoRails on several occasions and found it very helpful. Thanks for sharing your experience with the community. So happy you're up to $15k a month, hope there's much more to come!
Thanks @BlueMidnight! Glad to hear you've found it useful. There's definitely much more to come, although I could use an extra several sets of arms and keyboards to get everything done that I want to at this point. :)
Thanks for all your work Chris, the screencasts are just awesome.
Re The architecture problem (I want to do X but not sure how to get there or structure things) ; I wonder if that’s something you can train towards in a small (virtual) group setting?
That's definitely a possibility and something I've toyed with in the past. I should probably see about doing some small-group thing in the near future to test the idea out. If you have any thoughts on this, I'd love to hear them!
The main thing is you probably need a chance to have a think / look at whatever the person is trying to achieve ahead of time, so maybe a group call where someone can 'submit' their issue beforehand, then everyone can listen to the response.
Keep it to a few (1-5) participants around similar topics and have each participant pay a fee to join in which should cover your prep, any hosting/costs and some time for you on the call.
Work round the group each week.
Chris, you’re the man! I’ve learned so much from you over the years. Thanks for all you do for the rails, codenewbie and now IndieHackers communities!
Thanks Drew! Just glad I can give back to the community! I plan on sharing a lot more business related stuff I'm doing this year which should be fun.
Looking forward to it! I love the inside look at businesses I use as a customer. FWIW, I would love to hear more about HatchBox too.
Yes definitely. Hatchbox has been a phenomenally fun prodcut to build, but it's very hard to grow given just how established other products like Heroku are. It's going to be one that forces me to try some new things like buying ads.
Have any questions specifically on Hatchbox?
Yes! What motivated you to create it? What’s the biggest challenge of running two related (but very different) businesses? How has the competition in the space impacted your strategy? How are you marketing it?
Motivation: I've been deploying rails to my own servers manually with Capistrano for a long time. This has been fine but it was nice if it was automated. I found out from a couple community members about Laravel Forge and was impressed with it and decided to try building it for Rails. It's turned out to be even easier to use than Heroku sometimes. :)
Challenges of two different businesses: The context switches suck. It's hard to jump from one product to another and think deeply about what you're doing. HatchBox also has a lot of need for fast support responses so I now have to be very diligent about answering emails as fast as possible. I feel like I can't concentrate as much anymore because of that. It's been really tough and one of the reasons why I may have to get a cofounder or hire part-time to help cover everything.
Competition: I've ended up with the focus on simplicity to differentiate. I'm not sure it's enough yet, but I'm trying to bring the simplicity of Heroku to your own servers. Some similar things like Dokku are fine, but they either have problems or still require a good amount of effort to use. HatchBox is a click to configure a new server and a click to deploy an app (more or less) and you're all set.
Marketing: Honestly, I haven't done much marketing for it at all. My excuse has been that I wanted to make sure the platform was stable before bringing in a bunch of new users. Since this is mission critical work for most users, stability is super duper important, but I could be doing more to get people in. The most marketing I've done so far is pointing GoRails users from the deployment guides to HatchBox in some banner ads. I plan on buying some ads and learning how that works this year. Alongside that, my goal is to record a bunch of screencasts showing how to use it and how it works which I think will be very helpful for marketing.
This comment was deleted 4 years ago
So awesome to hear that! 🤓I hope your software businesses are going well and can't say thank you enough for your support!
This comment was deleted 3 years ago
Hey Lee, you can definitely learn to code without math. In fact, most web development isn't really using math at all. It helps to understand a few things, but in the majority of Rails apps most of the work you're doing is with text instead of numbers.
This comment was deleted 3 years ago
This comment was deleted 3 years ago
Hey Pete! Great question. It's definitely a mixture of both. The easiest topics to record are the ones that I either know really really deeply or ones I've just recently done on other projects. Those episodes can take a day or two to put together.
The hardest ones are when I get a customer request and have to do a lot of research to put it together. It can take 5+ days to do sometimes.
This comment was deleted 3 years ago
Both I'd say. I would definitely love to bring in another screencaster or two for GoRails. Everyone has a different teaching style and it would certainly help reduce some of the burden from my shoulders. I'd hate to shut GoRails down, but if I did find a software product that I wanted to pursue full-time I definitely would. I miss doing the product work and GoRails is more of a media company if you will.
HatchBox is a start in that direction of expansion. It's got insane competition though (like Heroku) so I don't expect it to ever get huge. I've got another app in the works that's more generic b2b and should be announcing that sometime in the next few months. I'm really looking to find something here that gets that product-market-fit feeling again where customers are dragging me forward again.