I’ve never made a year in review post before, but I find quite a lot of value in posts from others who do it, and it seems like a great way to evaluate my own progress and refocus for the next year.
This year has been the most significant year of my life in many ways. I hope that I can say that about every year, but I think this one will always hold a special significance. It is the year that I quit my stable job, made the leap into working on my online business full-time, and travelled the entire year as a digital nomad.
I had hoped to grow my business to a point where it would replace my previous job dollar for dollar, or at the very least, provide enough income to travel indefinitely. I kept breaking goal, after goal, after goal, to the point where I was earning more than 3x my previous annual wage.
Although this is the first year I’ve worked on my business full-time, I’ve been slowly growing it for about 3 years, over which time it generated very little income. This is the first year that I feel like I have a serious business on my hands.
I’m going to talk a little about the specifics of how I grew my business as a developer, where the income came from, and some lessons I learned along the way. This is what Developing Authority is primarily going to be about, so it seems fitting that this is the first post.
The Numbers in Brief
Since this is the first year I’ve done this, I don’t have anything to compare this year’s numbers to, but this will serve as a benchmark for the next year’s review post.
To give some more context, I’ve been blogging on joshmorony.com for around 3-4 years and have been serious about it for about 1-2 years. I switched to focusing on it full time around 6 months ago.
Here’s a break down of revenue from paid products I have launched so far:
Although I have been starting up some new projects, joshmorony.com is the only one that I have been focusing on this year so it is the only one I am going to post the numbers for.
Sessions: 1,268,497 (+317% vs previous year)
Users: 557,706 (+198% vs previous year)
Pageviews: 1,987,088 (+309% vs previous year)
Email Subscribers: 11,000
Twitter Followers: 2,700
YouTube Subscribers: 2,300
I had just one major product launch this year, and that was Building Mobile Apps with Ionic 2. This was my third paid product launch and the first one that I made serious, job-quitting, revenue with.
Building Mobile Apps with Ionic 2 is a technical book that teaches developers how to build mobile apps with Ionic 2. I took a bit of a risk and took on a lot of responsibility when I decided to release this book in the early beta stage of Ionic 2’s development.
One particular quote that has stuck with me over the years was from an entrepreneur at a local startup event. He was talking about offering guarantees for your products and made the point that if your guarantee isn’t big enough to scare you then it’s not good enough.
I offer a 14 day, no questions asked, refund for my products – but that is in no way big enough to scare me. If someone asks for a refund then it’s just like the sale never happened – no big deal.
My scary guarantee was that I would update the book for every breaking release of Ionic 2, for free, until a stable version of the framework was reached. The complete book is over 500 pages long and includes 5 example applications, and because I released the book so early on in the development cycle of Ionic 2, the changes to the framework were frequent and big. So far, I have revised the book 13 times.
The official stable release of Ionic 2 is just around the corner now, but I’ve already made $120,000 in sales from it. I also had a big advantage in that my product was the only resource of its kind available for Ionic 2 for a long period of time, other resources for Ionic 2 are just starting to come out now.
If I didn’t take on that extra work and responsibility, then I would only just be getting ready to launch the book… and I’d probably still be working my old job. It’s impossible to say whether I still would have eventually generated a similar amount of income if I had have waited until now, but I think the first-mover advantage would have had a significant impact on sales.
Here’s the graph of sales for the book since the initial launch:
Let’s talk through some significant events in that graph.
The first spike on the graph in April is, of course, the launch of the product. I originally launched to an audience of around 5,000 email subscribers. It was a pretty typical launch, generating the majority of the income in the first couple of days and then quickly dropping off after that. The launch generated around $12,000 in sales and then dropped to the steady average of around $2,000 per week. These sales continued steadily throughout the entire year, occasionally spiking or dropping below that amount.
The second spike (the huge one) was due to a promotional email. The Ionic 2 team got in touch and offered to send out an email to their list of around 80,000 developers. This was not a paid promotion, they were just looking to support members of the community.
This was a very generous email, as far as promotion goes, this is about as good as it gets – the social proof of being recommended by the framework creators themselves, as well as the promotion being sent to a very targeted list. This lead to another $20,000 in sales in just a day (thanks Max and Katie if you’re reading!). You can take a look at the email below:
The final large spike is my relaunch. I went through a similar marketing process to the initial launch, essentially treating it like a new product launch. I was relaunching the same book, except that I had added quite a bit more content to it (including a short video course), and I was raising the prices.
I raised the prices because I think the product is worth it and because my data supported that. I offer three different tiers for the book, and about 90% of people were buying the most expensive package. The most expensive tier was $79, and I raised this to $129.
Another benefit of raising your prices during a relaunch is that by allowing people to buy it at the old price before the prices rise, you create the time sensitive effect of running a sale without actually discounting the price of the product. I like that this doesn’t punish people who have already bought the product at full price, it just gives more people the chance to get in at the same price.
I relaunched to an email list of around 10,000 people, double what I had previously. Of course, I’ve already launched to a bunch of these people, but there are also a lot of new subscribers who may still have never heard of my book.
Something very interesting happened during this launch.
The relaunch would last for a week, and on the first day of the relaunch, I sent out the launch email. I expected to get most of my sales then, and I thought I did. I generated around $5,000 in sales, which was a bit short of my goal of beating my original launch with the relaunch, but I was still quite happy with that. On the last day, I decided to send out a “last chance” email, and you can see what happened if we take a look at a smaller date range on the graph:
That giant spike is a result of that final email. I generated far more sales from that last chance email than the initial relaunch email, and the end result was that the relaunch did generate more than the original launch at around $16,000 in sales.
I’ve already generated a massive amount of income from this book, but it’s still just at the beginning of its life.
Blogging is the lifeblood of my business, and it will continue to be my main focus in 2017. Blogging allows me to grow my audience, develop authority on the subjects I blog about, organically sell my products, contribute to the community, help others, and constantly learn.
I’ve mostly been blogging about Ionic 2, and will continue to do that since it is what most of my audience is interested in, but I will also be blogging about on other HTML5 mobile topics more generally.
I have been consistently blogging for about 2 years, and would usually release 1 or 2 new posts a week. Recently, I decided to challenge myself and start releasing daily content from Monday to Friday, which included rebooting my YouTube channel. I realised I am in a bit of a unique situation in that this blog is now my full-time focus. Many other people are at the stage, just like I was, where they need to juggle blogging along with their normal job. I wanted to capitalise on this by releasing an absurd amount of free content every week.
I’m seeing the benefits of this already – I’ve seen an increase in traffic even during the holiday period where I usually see more of a dip in traffic, and there seems to be a lot more activity on my website and social channels. It has only been a few weeks, though, so it will be interesting to see the long-term effects, I do plan on continuing to do this all throughout 2017.
As well as continuing to blog on joshmorony.com, I will also be starting to blog on this website. I’m not entirely sure what my long term goal for this website is yet, but it’s refreshing to be able to write on topics other than development, and I do think I have some valuable knowledge and experiences to share.
Without a doubt, I prefer generating income with products rather than consulting. I find the process of creating and marketing products to be fun, and income from products isn’t directly tied to your time.
However, I have still been doing a little bit of consulting. I offer consulting packages for Ionic 2 development through my website, but I limit the amount of time I spend with any particular client to about 10 hours. Most of the work I take on usually involves helping a client plan and structure a new project, supporting them in building an application, or reviewing code for an existing application.
The great thing about having developed authority around this subject is that I can be very selective with the work I do. Rather than seeking out clients to work with, the clients will come directly to me, and I will only work on projects that I find interesting or with people who I think I will get along well with.
The consulting work is also often symbiotic with the content creation and product creation I do. When a client comes to me with a problem I’ve never solved before I get paid to help them and I learn how to solve that problem, which in turn helps me create more content. There have even been a few cases where I’ve made arrangements where the client would pay me to research and solve a problem, which I would then publish on my blog. So, I was getting paid to write for my own blog, and the client gets their problem solved for a good price.
It also gives me a chance to work on interesting real-world problems. Working on example projects that I control the requirements for, for the sake of a tutorial, usually results in the “happy case” where everything just works nicely. Real-world problems have the tendency to have more challenging requirements.
I am still a little bit unsure what my thoughts are on consulting work moving forward, and it’s not going to be a priority for me, but for now I will continue to offer consulting packages in 2017.
I’m still deciding exactly what the content on this blog will look like, but it likely won’t include much travel stuff. However, it’s a big part of my life that this online business has enabled me to do, so I want to at least cover what I am up to in these yearly review posts.
This year was a big experiment in terms of work and travel. In 2015, I had started freelancing locally and had managed to make arrangements for a lot of that work to be performed remotely from home.
We decided to go on a year long caravan road trip around Australia, and I would attempt to continue working remotely – just like I was from home already, but instead from a caravan. This definitely took a bit of convincing for the biggest client I was working with at the time, but I had already established that I could effectively work remotely for them (since I was already working from home half the time) and I was valuable to them, so they agreed that we would continue working together and see how it goes.
We had enough money saved up that we didn’t need a stable income for the trip, so I was prepared to leave that position and go full-time on growing my blog and product revenue right away anyway. It was interesting work, though, and it was only 2 days a week, so it was great to have that additional safety net whilst I grew the business.
As I mentioned before, the goal was to make enough money on this trip such that we could continue to travel and work indefinitely, and that meant creating a stable income from product or consulting revenue. Something that I control, rather than relying on one or two big clients for an income. It was about halfway through the trip that I started earning enough from product revenue where it made sense to focus on that full-time.
It was at that point that we realised that we achieved what we set out to do, and we could keep travelling for as long as we wanted. We were going back to our home town of Adelaide at the end of the trip, but it was a weird feeling to think that we didn’t have to – we could go just about anywhere we wanted for as long as we wanted.
There was some certainly some challenges in working online whilst travelling around Australia, but I feel like if we can do it through outback Australia then we can do it anywhere.
In short, Australia’s Internet could be summed up in two words: poor and expensive. This is partly due to poor management of the Internet infrastructure in Australia, but also because Australia is so big and empty. Australia is similar in size to the United States, but around 85% of our population lives within 50km of the coast.
Internet access through the southern and eastern coasts is quite readily available, but on the north and west coasts, as well as inland Australia, it is a bit more difficult.
On the trip, I paid $90/mo for 20GB of mobile broadband with Vodafone and an additional $50/mo for my phone plan with Telstra which included 4GB of mobile data that I could hotspot with. The combination of these two worked quite well. The Vodafone plan would work in most larger towns and cities, and the Telstra data would work just about anywhere, including the smaller towns and more rural areas. The only places I was completely without Internet was mostly through the long drives through the outback, and only a few places we were actually staying had no Internet access. With careful management, I was able to make that 25GB last for most months.
If you’d like to read about some of the places we went to on the Australia trip, and see some photos, my Fiancée is putting together a blog of all the places we visited.
Later this year we will be travelling throughout South East Asia for about 6 months, and in the not too distant future I’d like to start making my way to Europe and the United States and start speaking at some conferences. It’s something that both scares and excites me. I’ve done quite a bit of public speaking before, but never for development.
These are just some things that have stuck out to me when reviewing my progress this year. Things I realised, things I did well, things I sucked at, and so on.
- My email list is the biggest asset I have, and I treat it as such. There is a lot of trust involved in handing your email address over to someone, and I try to make sure that I deliver a huge amount of value to the people who subscribe to my content. At the same time, when I do (very occasionally) promote my paid content to my audience, I push hard. The vast majority of people who do not end up buying take no issue to this, because they trust me and like my content. Inevitably, you will offend people doing this, though, so don’t be afraid to lose a chunk of subscribers (they are probably not the kind of subscribers you want anway).
If there’s one thing I’ve been doing well, it’s consistency. People know that if they visit my blog they are going to see new interesting content every time.
Focus on the quality not the quantity of your audience. Building an email list isn’t just a numbers game – a targeted list of 3,000 subscribers could is far more valuable than a list of 50,000 people who never open your emails. This year, I deleted about 3,000 “cold” subscribers who hadn’t opened emails from me in 2 months. They are not interested in my content, and I have to pay more to my email provider to keep them around, so it makes no sense to have them on my list just to boost numbers.
Learn from others but don’t emulate them completely. A lot of people who may be way ahead of where you offer a lot of great advice on what works for them, and what works in general. There are important lessons to be learned in this information, but it’s important to inject your own personality and ideas into what you do.
Experiment. Similar to the last point, following what leaders in your space are doing can be a great idea, but it’s also important to experiment with your own ideas. A single email that I decided to send on a whim earned me thousands of dollars.
Analytics. This is something I failed at for far too long. When I finally got everything set up properly so that I could track where sales were coming from I had missed so much valuable data. Knowing where your sales are coming from, how well certain pages are converting, and so on, allow you to much more effectively grow.
Make sure you charge what your product is worth (and often that is far more than most people think). When the highest tier of my product was $79, about 90% of customers bought that version, and when I raised it to $129 still about 80% of people buy that version. I’ve had a couple of people criticise (or straight up abuse) me for pricing the product that way, but far more people have said it is well worth the money. If I had priced my product at $10, or $20 so that I didn’t offend anybody, I likely would not have made anywhere near the amount I have from the book.
Push harder when you’re winning. It’s so easy to fall into a rut, get writers block, get burnt out, whatever you want to call it, and when you’ve got a steady passive income stream coming in it’s even easier to fall into the trap of resting on your laurels. Capitalise on any lead you have instead of falling behind.
Goals for 2017
I’m not a fan of New Year’s resolutions, I think anything that is worth doing is worth starting right away, but I also think goal setting is extremely important. I also think it’s important to set specific goals and aim high. The goals I set for myself in 2016 were too timid. I was aiming to make $20,000 from my book, and maybe $100,000 over its entire lifetime – I smashed through those very quickly. So, this time I am going to set some more grand goals:
- Daily content (Monday to Friday) for joshmorony.com
- Fortnightly content for developingauthority.com
- Grow developingauthority.com to email 5,000 subscribers – (help me!)
- Launch a new Ionic 2 product before May
- Reach $250,000 in total sales for Building Mobile Apps with Ionic 2
- Generate $200,000 in sales for the new Ionic 2 product
- Release a themes/starters/plugins site for HTML5 mobile applications
- Reach 1,000,000 views on YouTube
Wish me luck for 2017 🙂