Two things prompted this post:
- Last week I moved my oldest and best selling Mac app to a subscription model.
- Ryan Christoffel wrote about The Iconfactory announcing that their amazing app Linea Sketch will be doing the same in 2020.
I work for a company that primarily builds hardware, but software is my true love. I've been programming in some form or another for twenty-seven years. It's my job and my hobby. It's the thing in life I'm most passionate about (other than my family, which I guess I'm required to say). I love the high I get from solving a difficult problem in my own apps and seeing the even more amazing accomplishments other developers pull off.
And when I see a well-crafted, beloved indie app (or entire company!) go under, it kills me. So, here's my unsolicited thoughts on the state of software subscriptions both as a business owner and as a customer.
The first dollar I ever made from a piece of software I wrote myself was from a website I built in 2002 called IHateClaire.com. (Fun story: In 2009 someone bought the domain and turned it into a revenge-porn site.) For a one-time payment of $5, you could upload as many photos to the website as you wanted, and using a specially crafted file format that I reverse engineered, my server would send the photo to your SprintPCS flip-phone for you to use as a wallpaper or caller ID image. It certainly didn't make me rich, but I was able to buy the occasional sandwich on the way to my college job at RadioShack.
Other small projects like that followed, but my first, real commercial endeavor (at least as I view it) was VirtualHostX in 2007. Originally costing $7 for version 1.0, over the next six years it would mature and gain new features until finally settling at $49 in 2013; a price that lasted until November 2019.
VHX followed the typical up-front pricing model. Your one-time payment got you all minor updates until the next major release. At that point you could upgrade at a discounted price or stick with your current version as long as it kept working for you.
Over the course of twelve years I released seven paid upgrades - each time offering existing customers a discount of 15 to 50% off. And even with those discounts, my upgrade revenue typically dwarfed my income from new customers more and more with each passing year.
Here's a chart of total new customers gained each month from 2007 through last month. You'll see that I've had to rely on revenue from existing customers as the number of new users buying my app has fallen.
From 2012 through 2014 it was my only job. But with the birth of my son (and then daughter), my wife left her job to raise them while they were babies and I went back to a 9 to 5 job plus my software business.
I won't bore you with the gory details - because they're both personal and quite boring - but in late 2017 the business came crashing down. And by May 2018, my one-person indie company was essentially bankrupt. Burnt-out and slightly devastated, I called it a loss and tried to move on.
But like I said at the top of this post, my heart is in software and I wasn't getting that type of satisfaction from my day job. With the help of a small angel investment, I got back to work later that year and put out version 8.0 in October 2018.
Since that time, I've been trying to win back my customers' trust and make the business viable again. The plan for doing so started this past January and finally came to fruition with me ditching version numbers entirely and releasing what would have been version 9 as a rebranded VirtualHostX Pro with a subscription model (kind of).
As I said, I rely on upgrade revenue to stay afloat. And I typically put out a paid release every 18 to 24 months. But that simply wasn't sustainable.
(Ok, now let's get to the part about other developers and our industry in general.)
I have it extremely easy. My apps aren't in the App Store. They wouldn't be allowed even if I wanted to go that route. And that's awesome! That means I have to do everything myself - from online storefronts, to payment processing, licensing and order fulfillment, etc. I'm not under Apple's control (for now), and I don't have to throw away 30% of every sale. My fees, all inclusive, are just under 9%.
But for developers who only (or primarily) target iOS? Fuck. 30%? Capricious App Review enforcement? Competing against scam artists? (Admittedly better) review times? Getting locked out of your developer account? And, the point of this whole blog post, a trillion dollar tech company that refuses to work with its most passionate and loyal customer base to figure out a sustainable business model? (Haha, just kidding. There's no great mystery to figure out. Just fucking allow paid upgrades already.)
In the App Store your options are:
- Release a paid up-front app and ship new features and bug fixes free, forever.
- Release a paid up-front app and let it die a slow painful death due to abandonment and/or bankruptcy.
- Riddle the app with in-app purchases.
- Ship version N+1 as a brand new SKU every so often and hope (with zero promotional help from Apple or the App Store) that your customers buy again.
- Turn to a subscription model.
Options 1 and (obviously) 2 aren't sustainable - especially in today's increasingly cloud-connected and service-oriented world where nearly every app has a web service component and simply costs the developer money for the app to continue to function.
But let's play Devil's advocate. Let's ignore the recurring costs of the backend infrastructure or the time (which equals money) it takes to build, test, and ship new features.
iOS (and now macOS) are not Windows XP. Apple (and I don't truly blame or criticize them for this) doesn't give two shits about backwards compatibility. They move fast because, one, it's in their financial interest to keep shipping new, shiny things, and, two, they have a genuine love for the cutting edge - old software be damned. (Again, as a macOS developer, I have this way easier than my iOS counterparts.)
We kill ourselves for four months every year just making sure our software continues to work with what Apple announces in June and ships in September. (Most recently in my day job, one developer spent about three weeks just focused on implementing UIScene support and dark mode.)
Option 3 is a possibility for some developers (Launch Center Pro attempted this with some success I think), but gating new features behind IAP paywalls is confusing (and sometimes deceptive) to customers and a nightmare for developers who have to if/else the crap out of their code on top of dealing with the ridiculous struggle of verifying more and more complex App Store receipts.
And say you do go the feature flag route. That still means you have to keep features that customers previously paid a one-time price for updated and compatible with iOS changes. And then you're right back in the same unsustainable boat as up-front pricing except now you're managing lots of a small purchases instead of one larger one.
And as for Option 4, if you're going to regularly ship entirely new SKUs as a de-facto way of doing paid upgrades, well then you might as well go the subscription route (Option 5) because customers are going to have to keep paying for the app to continue working in either case.
We spent over 200 hours on the Linea 2.7 update. A majority of that time was not even spent adding new features, instead it was spent making sure that everything looked right with the operating system’s new Dark Mode!
Changes to the operating system are obviously outside of our control but they must be dealt with or else the app risks becoming unusable. For example, prior to our work to properly handle dark mode, if you went to select a new template, you were presented with a menu that had black text on a black background.
Apple has recently begun to make a distinction between “iOS” for the iPhone and “iPadOS” for iPads. We expect that we are entering a period where new iPad-specific features will require a lot of maintenance in the coming years. If we don’t keep up-to-date, you’ll be working with a broken or unusable version of Linea sooner rather than later.
For a small software company whose product really is the app - as opposed to a SaaS with a companion app, or some other type of business that can bankroll an app by virtue of their real source of revenue - I don't see any other sustainable path forward than subscriptions.
At least here on the macOS side of things outside the Mac App Store, Apple hasn't willfully destroyed the perceived value of software as a way to juice hardware sales. So charging a premium (fair?) price is still realistically possible. But it is becoming more and more difficult.
So what can be done? What can literally keep food on developers' tables and still be fair to our customers? (Other than paid upgrades in the App Store, of course, but that's just silly, right, Apple?)
A common refrain from customers is they just want to pay for an app one time. I GET IT. But if we, developers, don't get paid for our time, it is simply unsustainable to ship updates. And every app out there will 100% eventually die and cease to work without maintenance work. The breakneck pace of iOS ensures that.
And so I view it as a very simple calculus for customers. If you buy an app for $0.99 with the intention of only using it a few times for a specific use case, then who cares if it breaks next September? But if it's an app you regularly use or - gasp! - actually depend on? Why would you not want to do your part to ensure it has a future?
This made me think about the subscriptions I have for apps. It's a grand tally of one: Tower. It’s a tool I need for work, and it cannot hold my data hostage. I don’t trust any other creational tool with a subscription. Perpetually renting access to my own data doesn’t appeal.
@drewmccormack agreed. which is why we will offer a free editor and always allow to export your documents, with our without an active subscription
@myell0w Sounds like the right way to do a subscription. IMO a lot depends on the “lock down” that is applied. If you can’t do any edits at all, it could be very frustrating. Eg. see a typo and have no choice by to pony up for another year to fix it.
Drew makes a great point. It's the "lock down" that can be the key to a sustainable balance between what's fair to customers and you staying in business. VirtualHostX's new pricing structure follows the Sketch model: the app works forever - just no new updates after your subscription expires.
But, still, subscription fatigue can certainly be a real thing for people. My biggest gripe, however, as a developer, are those who still balk at paying anything for apps they use - up-front price or subscription.
I'm incredibly fortunate to earn a good living. And so I try very hard not to project my financial prosperity on to other people who may or not be in a situation I understand. But our customers are walking around with an - at a minimum - $500 supercomputer in their pocket. In addition to a larger, equally expensive slab of smart glass in their bag - if not also a laptop or smart watch, too. All of those combining for at least $60/month in service fees to the cell carriers.
The Iconfactory announced Linea will be $0.99/month or $9.99/year. If you love that app, why would you not fork over less than a dollar a month to continue using it?
I target a smaller, niche market and have way less sales than they do, so I have to adjust my pricing for a smaller set of customers. VirtualHostX Pro is $5/month or $49/year. I have a major advantage in that for a large percentage of my user base, my app is a business write-off because they rely on it to do their job. (Not knocking Linea or other apps. I'm sure many of their customers use it professionally, too.)
So when I did my big release last week and announced my new pricing model, I was extremely nervous and wary of what the response would be. But so far I'm very lucky that I've have had few complaints. (I'm sure there are lots of folks who are pissed and will just never tell me or buy from me again.)
Here's two unsolicited quotes I received from customers last week:
Sorry, I don't do subscriptions. It's not a pricing model I support as a user. I'll be moving to alternative software.
I replied to this user that while, yes, VHX is a subscription now, it's following the Sketch model. If you let your subscription expire, the app keeps working forever. You just don't get new updates.
Anyway, they never replied back. So I looked up their previous order history and their only purchase was three years ago when they bought the app on sale from a bundle website for $0.99. So, you know what? Fuck that guy. You can't please everyone.
The only way for us to continuously preserve access to your work is for us to keep the app up to date as best we can. To be able to afford to do that, we need your support.
If you still don’t agree, then feel free to export your work and move on.
But back to my customers, here's the type of engaged customer that makes my job a joy:
Now a subscriber. I am happy to support a sustainable future for the project. I had to jump ship for a while when you had decided to no longer support the earlier version, so it was great to be back in the fold when you brought it back to life! I think you are making a good choice with the subscription option.
Will the Sketch model pan out and keep my tiny company afloat? I have no idea. I don't know if it will save Linea or anyone else. The rise of advertising supported software, VC funded apps that can operate at a loss for years, and companies who finance their apps via alternative streams of revenue have conditioned users to believe that software is a cheap commodity not worth paying for. We started heading down that path with the Web 2.0 bubble, and the rise of the App Stores have only accelerated that trend.
So, now it's subscriptions or bust. Because, obviously, Apple is smarter than all of us and knows that paid upgrades aren't a viable solution to a problem that was solved thirty years ago. That, or they're simply not self-aware enough to realize that they, too, rely on upgrades - just in the form of hardware sales instead of software.
And just to prove that I eat my own dog food, here's a screenshot of my App Store Subscriptions screen: