2020 marked my third year as a content creator making Flutter tutorials and courses on Udemy, YouTube, and my own website.
In this article, I share a full retrospective about my sales numbers, along with a lot of details about my journey and milestones. I'll also explain how I used Udemy, YouTube, Teachable, Twitter, my website, and many other channels to grow my audience and business.
Subscription Management for Flutter apps. RevenueCat gives you everything you need to build, analyze, and grow IAPs with just a few lines of code.
In reality, 2020 has been a tragic year for many people who have lost loved ones. I can only be grateful that everything has gone as well as it could have in my own life. Being able to focus on my work from the comfort of my home has kept me sane and safe, and I'm aware that many others don't have this privilege.
I'm about to share my successes and insights from this year, because I feel they are valuable and worth sharing. If you had a tough year and didn't accomplish as much, I want you to know it's ok. You can read this retrospective for what it is, but don't compare yourself to me.
So let me give you a realistic picture of what it's like to run a content creation business, starting from my motivation:
Before becoming a content creator I was contract iOS developer for many years, working on many diverse and interesting projects.
I had the flexibility to take time off and work on side projects between contracts, due to strong demand and competitive market rates for iOS developers in London.
So why did I decide to leave that behind and make Flutter tutorials and courses instead?
Ultimately, my decision came down to this:
I want to have full creative control over my work, be my own boss, on my own schedule.
I'm very passionate about coding and helping people learn to code, no matter where they are in the world.
Content creation gives me an avenue to do that and brings a lot of exciting challenges. I started creating Flutter video tutorials on YouTube and courses on Udemy. In 2020 I've launched CodeWithAndrea.com as a platform to share all my content in one place.
In addition to coding, my daily work includes writing articles, making videos, marketing, and growing an audience across multiple platforms.
All the things I do boil down to this: how can I productize my knowledge and make a living from it?
This is not easy and is not for everyone. Daniell Vassallo said it best in this recent tweet:
The problem with scalable work (where income and effort are decoupled) is that your odds of success are very low. The stars need to align to make it work, and if they don't you'll make nothing. This is not the case with non-scalable work.
With this in mind, I can now share my goals for this year and show you how I've done.
In closing last year's retrospective, I set myself some goals:
- Launch (at least) one more course
- $5,000 monthly average revenue (MAR) (from $2,400)
- Reach 30K subscribers on YouTube (from 10.5K)
Note: I don't get monthly recurring revenue (MRR) by selling Udemy courses, so I'll use the monthly average revenue (MAR) over the last 4 months as a metric instead.
This year I launched two new courses (more on that later), so I've accomplished my first goal. ✅
Next, I'll show you my full income report. After that, I'll share a lot of insights about my content creation strategy and journey.
This year I've been earning income across three platforms: Udemy, Teachable, and YouTube (via AdSense).
Here's a monthly breakdown across all platforms:
My total earnings have reached just under $43,000, at roughly $3580 per month.
Of these, Udemy took the cake, at over %90 of my income. So let's look at that in more detail.
My Udemy lifetime earnings look like this:
I'm happy to have passed the $50K milestone. Though monthly average revenue (MAR) is of course the most interesting metric.
Over the last four months (September to December) my MAR reached $4,250, which is short of my $5K goal. ❌
Note: sales numbers are very seasonal, as Udemy runs many promotions in different countries at different times of the year. While the chart above shows an increasing trend, I expect sales to dip in Q1 2021.
In September alone, I managed to drive nearly $3,700 in sales from my own promotions, thanks to the launch of my new Dart course. And I was quite happy about it:
November has been my best month so far with $5,000 in revenue, due to Udemy's Black Friday promotions.
This year my Udemy income was distributed like this:
- 45% from my own promotions
- 55% from Udemy organic, affiliates, and the ads program.
In other words, while Udemy traffic contributes to ~55% of my sales, I still have to consistently promote my courses to break through the $4,000 MAR mark. For comparison, top instructors earn a lot more in volume sales from Udemy organic traffic.
$4,000 MAR makes me financially comfortable (some would say ramen profitable) and I can fully focus on my business without doing extra consulting work to pay the bills. 🙂
Here's how each of my three Udemy courses performed:
This is my oldest and longest course, with 21 hours of content. It received a big spike in sales in April / May, as more people were learning online during the first COVID lockdown. But it has been on a down-trend since then:
In August, the FlutterFire plugins received a major update that introduced many breaking changes, and course ratings dropped from 4.7 to 4.6 as a result. I managed to update the course in November, but the ratings haven't climbed back up yet.
I launched this course in March on Teachable, and in late April on Udemy:
This course is much smaller (2.5 hours of content) and has not been getting a good volume of sales due to its lower ranking on the Udemy charts.
In an attempt to improve this, I did something outlandish and made the course free for 3 days in October. I shared this on Twitter and Reddit, and gathered over 15,000 enrollments 🤯. This is very noticeable in the traffic & conversion report:
The result of this experiment?
- the number of reviews doubled to over 200
- the average review score dropped from 4.7 to 4.5
- over the next two months, the course ranking went from #52 to #7 for "flutter"
The extra reviews helped with sales, most likely due to increased visibility during Black Friday. But this was a gamble. All those "free" students never bought my other paid courses, and I will not try this again.
Lesson learned: Never give away your paid content for free.
This is a hack that can help boost rankings, at the expense of jeopardizing reviews and attracting the wrong students. And I wouldn't risk this on my most valuable courses.
This is my newest course. It took 4 months to produce and ended up being a comprehensive Dart course for beginners with 10 hours of content:
I launched it and promoted it heavily in September, and it has been performing fairly well since.
This course is now rated 4.8 stars and I often see people recommending it on Twitter and Reddit. It has even been gifted at some Flutter conferences. 🤗
Udemy is a crowded marketplace. So how have I been able to generate these sales numbers?
Udemy is like a smaller version of Google, for paid online courses.
Courses in the top 10 for a given category have a better chance of getting good search traffic, as well as being featured and advertised by Udemy. While many factors influence the ranking of courses on Udemy, the top two appear to be the number of reviews and the average review score.
So if you're planning to launch a course on Udemy, you need to carefully evaluate how much competition there is for the primary course topic, and how likely you are to break into top #10 for the number of reviews.
According to the Udemy insights page for Flutter, the average monthly revenue of the top 5 courses is $20,000, while the median monthly revenue is under $50:
In other words, the winner takes all. As there are now nearly 600 Flutter courses (a 10x increase compared to 15 months ago), my future courses will have a decreasing chance of being discovered.
Still, Udemy offers a promotional email feature that instructors can use to market new courses to their existing students. Here is how my promotions have performed so far:
I'm no CTR expert but click-through rates of over 10% sound very good to me. For comparison, CTR in my regular email newsletters has been around 4% this year.
With a combination of promotional emails and announcements on YouTube and Twitter, I got enough students and reviews to make all my three courses rank in the top 10 for Flutter / Dart.
But with over 600 Flutter courses on Udemy, I'm not sure that my future courses will do well enough to break even, no matter how good they are.
Because Udemy is all about volume, most courses cater to beginners. Maybe I should publish my future courses somewhere else, for a higher price. After all, there are many ways of making $50,000 with a course:
- 5000 sales for $10 each
- 1000 sales for $50 each
- 500 sales for $100 each
This brings me to Teachable.
After seeing other creators have success on Teachable, I decided to use it to host my Flutter REST API course.
This course shows how to use REST APIs to build a Coronavirus app in Flutter. I launched this course in March, right when most of Europe and the US were experiencing the first wave of COVID.
To drive students to this course, I shared a couple of chapters for free on YouTube, and these were some of my most-watched videos this year.
I made $1,700 in the first month, but sales dropped sharply after that:
This highlights one important thing:
- Udemy is a marketplace with a lot of traffic and built-in search and discovery features to help students find your courses.
- Teachable does not market your courses for you. Instead, you have to drive all the traffic yourself.
Unlike Udemy, Teachable gives you full control over the course price, and after students enroll you have their emails. But when you are starting out and your audience is small, it's hard to get enough people to buy your course.
To be fair, Teachable already has a large pool of students and offers various ways (e.g. webinars) for instructors to promote their courses. I have not tried these marketing channels yet, and I'm keen to do so next year.
But as I continue growing my audience and newsletter (more on this below), it may make sense to sell higher-priced, premium courses exclusively on Teachable or other platforms. Time will tell.
YouTube is the second biggest search engine in the world and I really like it as a platform.
My goal was to increase my subscribers from 10K to 30K this year. But I didn't reach this goal and stopped at 23K instead. ❌
This is due to two reasons:
- My primary focus has been on creating paid courses
- Many of my videos didn't do great (less than 1000 views on week 1) rather than "everyone likes this" (over 10,000 views on week 1)
Here's a chart of my channel watch time this year:
This is mostly flat - even decreasing in the second half of the year.
That's because from July until October I focused 100% on creating my Dart course, and haven't been able to publish a lot of interesting content.
In the first part of the year, I tried to publish YouTube videos consistently, but I didn't have a clear strategy and wasn't getting results.
For comparison purposes, some of the top programming YouTube channels have been growing 5x to 10x faster than mine. So the bar is getting higher on YouTube, and I need to step up my game in 2021.
To be fair, I see YouTube as a valuable channel to increase my audience, but it is only one piece of the puzzle.
As I have written in my content creation blueprint, I'm active on many channels.
If I want to grow my business sustainably and continue to create valuable content (both free and paid), I need to focus on the right metrics:
- more Twitter followers? nice
- more YouTube subs? cool
- more unique visitors to my site? great
- more email subscribers? awesome
But what matters the most is how many students enroll in my paid courses every month. I can only continue making free Flutter tutorials for everyone if my paid courses pay the bills. By the way, you can buy them here to support my work. 🙏
Each platform is unique in its own way. Twitter alone has performed very well for me this year.
But I feel that going forward my website and email list will be a major focus. Speaking of which...
Launching this website in 2020 has been a great move.
My website holds all my content in one place. It's a platform that I own and I can use it as a funnel for my paid courses and newsletter.
Here are my traffic stats from this year:
After launching the site in January, I set up canonical URLs for all pages in my previous Medium publication, and I reached 40,000 page views in May.
Though I haven't published a lot of content between July-October, and my unique visitors have remained flat during this period.
And just as I started finding time to focus on my site, I discovered...
Blogging For Devs Pro is a great community of developers who are growing their audience through blogging. Joining this community has been one of the best investments I've done for my business.
I've learned a ton of stuff about blogging, SEO, email & newsletters, and much more. Even better, I've been able to share my work and get feedback from other creators daily. I think of this community as a form of shared mentorship. Monica Lent (the author) knows "a ridiculous amount about blogging" (in her own words), and has been consistently helping me and others take our blogs to the next level.
Empowered by this discovery, I set off fixing the most outstanding SEO issues on my site and increased traffic by 25% in one month. I updated some of my old articles using better keywords and boosted traffic even more.
And I also launched a brand new newsletter, redesigned parts of my website, and started planning a sound content strategy for 2021.
My old newsletter was hardly getting any new subscribers for most of 2020. That's because I was just showing a boring sign-up banner on my website.
Having seen what Monica had done with her newsletter, I figured I could do much better.
So I created a 15-day email course offering a curated list of resources to help people learn Flutter at their own pace.
I only launched this newsletter 10 days ago, but I can already report that I got nearly 400 new subscribers on launch day - that's 10% of the total subscribers in the previous three years.
I can offer a lot of value with this newsletter. More importantly, I can talk directly to my subscribers, figure out how to best help them, and better plan my strategy going forward.
Udemy, Teachable, YouTube, and my website have kept me busy in 2020. But I've used other platforms too.
This year I managed to reach 5000 Twitter followers, doubling the number from the previous year. Nearly all my Twitter followers are Flutter enthusiasts and I've been tweeting almost exclusively about Flutter. Having a targeted audience makes Twitter a strategic platform for me.
In July, I started a series of daily "Easy Wins" about the Dart language. These included bite-sized tips and tricks and have been very popular. I didn't quite make it to 100 tips and ran out of ideas at #43 😅, but I gained a lot of followers along the way.
This contributed to the successful launch of my Dart course in September, and for the first time, I exceeded $1,000 in sales on launch day.
Bottom line: it's worthwhile to build a loyal, qualified audience on Twitter.
People often reach out to me with questions, or even looking to hire me. While I'm focusing primarily on my business, it's good to know that I can easily find work if needed.
Content creation is not about passive income.
I've been working on my business for almost 3 years and my results have not come overnight.
This year alone I spent a total of 1198 hours growing my business, for an average of 23 hours per week. That may not sound like much, but I've also done some contract work, taken up with some hobbies, and - most importantly - spent some time with my family. So this is the right balance for me.
Here's a breakdown for activity type:
- Dart Course: 310h
- YouTube Production: 147h
- Blogging: 135h
- Flutter Rest API Course: 109h
- Website: 89h
- Community engagement: 86h
- Development: 76h
- Flutter & Firebase Course: 64h
- Newsletter: 38h
- Planning: 35h
- Other: 107h
Course production and updates have taken 42% of my time. Another 22% went into creating free content (articles and videos) for the Flutter community. And the rest was a mix of answering questions, building features for my website and newsletter, and writing open source Flutter apps and other test projects.
From a purely financial point of view, what is my return on investment?
- Total Revenue / Total Time Invested = $36 per hour
This is less than half of what I can earn as a contract developer and I hope to push this above $50 next year.
All the numbers above don't tell the entire story, as some of my costs have gone up this year.
Between ConvertKit, Ahrefs, Teachable, and other ongoing subscriptions, my expenses are now around $500 per month.
While I should be able to reduce some of my costs next year, I'll also invest in better video production software & hardware.
My ongoing expenses are less than 20% of my revenue. As long as my profits increase, I'm happy to invest in things that make me productive and help me produce better content.
For example, this year I hired a designer to make some professional banners for my videos and courses, and I'm glad I did!
While launching more courses has boosted my revenue this year, not everything is as rosy as it seems.
As languages and frameworks evolve at a rapid pace, courses and tutorials age quickly.
APIs change often (I'm looking at you FlutterFire), new packages are added all the time, and it takes a lot of work to keep content up to date.
I have seen this happen with my Flutter & Firebase course. While it's still a very valuable resource and I've managed to keep it updated, much has changed with Flutter state management and other topics. I've considered creating a brand new course to replace it. But that could take easily 6+ months of work and there's no guarantee that it would do well on Udemy.
Creating content about programming is a two-edged sword:
- on one hand, new stuff comes out all the time and there are endless opportunities to help people learn
- on the other hand, old content needs to be renewed often to remain relevant
Keeping info-products (courses, books) updated takes time and this is a problem as a creator.
Maybe I could get a better return on investment (ROI) building a SaaS product and this is something that I want to explore in 2021.
To this day I still find it easier, more profitable, and reliable, to earn a living doing consulting work than creating content. This is likely the case for most developers out there. So don't jump on the content creation bandwagon just because you see others doing it on YouTube.
Content creation has taken me away from coding more than I'd like to admit.
My course creation process takes months, and is not as much fun as coding new stuff and learning things.
Since launching my first course, I've made a point of answering all student questions. This is much appreciated and contributed to better reviews.
Trivia time: did you know that Udemy no longer has a minimum $10 price for courses? When students from low-income countries purchase my courses through Udemy's affiliate program, I can make as low as $1 per sale. While I still offer Q/A support to everyone, I'm doing it at a loss.
Some students ask good, thoughtful questions after researching their problem. Others just paste screenshots of common errors that they could have resolved very quickly by checking Google or StackOverflow. I don't feel those are the right kind of students for me.
On a brighter note...
So far I've shared a complete breakdown of all the $$$ I made. But you know what?
In 2020 alone, thousands of students have watched 36,000 hours of tutorials from my YouTube channel.
7500 students have watched nearly 50,000 hours of lessons from my Udemy courses:
Some of those students have gone on to create their own apps, even got jobs as Flutter developers.
For me it's incredibly rewarding to help others grow and live a better life. I hope I can do so for even more people in the future.
This leads me to my goals for 2021:
I could set some ambitious goal like reaching $10K per month, or have some explosive growth metrics. But that is unrealistic and would put a lot of pressure on myself.
So I'm going to diversify my income a bit.
In 2021 I'm planning to do some client work - just a few hours per week, to take all the financial pressure off my business.
And I'll focus on creating new, high-value content across all my platforms.
I still want to set some goal-posts for my business. Here they are:
- Reach $6,000 MAR
- 200K pageviews / 50K unique visitors per month on my website
- Grow my newsletter to 10K subscribers
- Grow to 100K views per month on YouTube, 40K subscribers
- Double Twitter followers to 10K
In honesty I don't think I have even a remote chance of meeting all these goals in 2021.
But I'll try and if I only get there the year after, that is cool with me. 🙂
I still need to figure out what I can do to unlock the next level of growth. But this is the nature of running a business, and I want to enjoy the journey. ⛰
Subscription Management for Flutter apps. RevenueCat gives you everything you need to build, analyze, and grow IAPs with just a few lines of code.
If you're a content creator or want to become one, I hope this article was helpful.
If you are one of my students, thanks ever so much for being part of my journey.
Whether you've been on my website before or this is the first article you read here, I hope you'll come back.
Thanks for reading, and I wish you all the best in 2021!