A ‘Cash Cow’ is on the Agenda

Drew McCormack
8 min readJan 15, 2018


Update: There is a follow up post about this sales model, told from the perspective of 3 years on the market.

TLDR; The note taking app Agenda is launching with a new sales model for Mac apps.

On January 22nd, I am launching a new app for macOS: Agenda. When I say ‘I’, I really mean ‘We’, because Agenda was developed with Alexander Griekspoor and Marcello Luppi. Alexander is best known as the developer behind the Apple Design Award winning app Papers, and Marcello is a great designer who we have been working with on just about everything for the past 10 years.

I’ll no doubt have more to tell about Agenda itself after the launch, but right now, I wanted to introduce the sales model we have settled on, because it is quite unique. We don’t really have a name for the model, although internally we jokingly started referring to it as ‘cash cow’, because it was our ticket to fame and fortune. Grandiosity aside, a more accurate description may be something like a ‘non-renewing, premium feature subscription’, but that is quite wordy, and ‘subscription’ is a dirty word in our team, so we’ve stuck with cash cow.

The Great Mac App Sales Crisis of 2017

For the last few years, Mac developers have been struggling in the race-to-the-bottom mentality that was ushered in by the mobile app stores. Customers no longer want to pay large sums for software, and traditional approaches such as selling major version upgrades are often met with a strong backlash. Great apps like Ulysses get a barrage of 1-star reviews when they migrate to more sustainable sales models like subscriptions.

The situation is getting pretty dire, pitting customers against developers; there doesn’t seem to be a model that is working well for both parties. Paid upgrades trigger an outcry; subscriptions trigger an outcry; and the lack of trial versions in the Mac App Store means selling at a sustainable price is a challenge.

The ‘Cash Cow’ Model

We thought about this long and hard when developing Agenda, and decided to try something new. It’s required a lot more work than simply uploading the app for sale on the Mac App Store — more on that below — but we think the result feels fairer to customers, and will encourage them to pay for the app with none of the usual resentment. Early reactions, during our beta testing program, and in online forums, have been positive.

So what are we actually talking about here? Agenda’s sales model lies somewhere between freemium and subscription. The app itself is free, with no time limits, but there are extra premium features that require an In App Purchase (IAP) to unlock. When an upgrade pack is purchased, all current features are permanently unlocked across all of the user’s Macs (…and iOS devices, when the iOS app becomes available). In addition, any features added to Agenda in the twelve months following the purchase are included, and permanently unlocked as well.

Only after the twelve month pack has expired can new premium features begin to appear that require a new purchase. The user can choose to buy a new pack, unlocking twelve more months of new features, or be content with what they already have until features are added which tempt them to purchase again.

Inspiration Courtesy of Sketch

Cash cow is inspired by a sales model used for the popular vector graphics app Sketch. (The model was actually first adopted by Framer, but Sketch is probably the most high profile app using it.) When you purchase Sketch, you get twelve months of updates included. So you get new features and bug fixes for one year, but after that you are on your own again until you make a new purchase. You won’t get any new features, or even bug fixes, but you can keep using the last copy of the app that you downloaded.

The Sketch sales model allows the development team to avoid the dreaded major version update cycle, which is hated by customers and developers alike. Customers hate it because they feel forced into making a new purchase, even if they don’t think it has much to offer. Developers are also not too keen, because they have to go into hiatus for 6 months or more to come up with enough new features to justify the version bump. And because many customers perceive the update as just a money grab, a major upgrade can lead to a heap of negative feedback and 1-star reviews.

Agenda’s sales model is inspired by Framer and Sketch, but there is a fundamental difference — we never leave a customer behind. We felt it was important to always be able to offer customers the latest build of Agenda, so that they get all of the bug fixes, even if they haven’t paid or their year of features is up. For this reason, cash cow is about unlocking features, rather than unlocking updates.

Aren’t Subscriptions the Way Forward?

The changes Apple have introduced to subscriptions in the app stores are a pretty clear indication that it is aware that the traditional ways of selling apps are not working as well as they used to. So are subscriptions going to save the day?

You only have to take a look at the fate of Ulysses to know the answer to that. No, not the Greek hero, the well-respected Mac app that moved to a subscription model in 2017. Despite Ulysses being a great app, which has won an Apple Design Award, customers were not shy in ‘punishing’ the change with 1-star reviews, pushing their stellar rating much lower than the app alone deserves.

People clearly don’t like subscriptions when it comes to apps. There seems to be subscription overload. It sometimes feels like every company wants you to sign up for a subscription, and people have become wary of them. It is an extra barrier to purchase; a feeling that your monthly outlays are getting too high, or that you will forget to cancel the subscription when you no longer need it.

You hear these complaints from customers regularly, but what really ruled out a subscription model for Agenda was this: we felt exactly the same way! We may be developers, but we are also consumers, and we feel the same repulsion to subscriptions — they are a reason to look elsewhere.

We didn’t want that for Agenda. We wanted a sales model that would encourage a customer to purchase, but not force them to do so. And we didn’t want customers to feel locked-in, or avoid a purchase because they were worried about feeling locked in.

How Is Agenda’s Model Better?

Let’s tally up the advantages that we see with the new sales model, and why we think it could be an attractive option for other Mac apps.

From the customer’s perspective, we see these pros:

  • Not only can customers trial the app for free, they can keep using the base features as long as they like (à la freemium).
  • The latest version of the app is available to everyone, including all bug fixes. Nobody need be ‘stuck’ on an older version.
  • The customer is not locked into a subscription to keep using the app. The features they have already purchased are unlocked forever.
  • There are no major upgrades, forcing customers to pay to keep using the app. Customers can decide whether new features warrant a new purchase, and keep using the latest version even if they decide not to upgrade.
  • When a customer makes a purchase, it is clear what they are purchasing: access to a concrete set of premium features.
  • Agenda can be downloaded from either the Mac App Store, or the Agenda website, and the customer can switch between the two variants while maintaining their existing license. For example, you can purchase via a download from the Agenda web site, and later install via the Mac App Store.

And from the developer’s perspective:

  • As with subscriptions and paid upgrades, a single customer can generate recurring income for the developer.
  • The development team is not forced to disappear for 6 months to develop a major new release. The app is continually evolving, with new features and bug fixes.
  • With no major updates, there are no opportunities for large scale customer disappointment being reflected in a wave of poor reviews and negative feedback. Updates are spread out, as are customer purchases.
  • Customers who do not immediately purchase are not necessarily a lost opportunity. They can continue to use the app for free, and may be tempted to purchase in future by newly introduced features.
  • It is quite easy to incentivize customers to help spread the word. For example, we could introduce bonus time for referrals. If a customer referred someone to the app, resulting in a new purchase, the referrer could receive an extra 3 months of premium features. You can conceive of many variations on this theme.

The Nitty Gritties

That concludes the high level discussion, but if you are a developer you might want to keep reading, because I’ll now go into how we implemented cash cow. (Others will probably want to skip this bit.)

To make cash cow work in the Mac App Store, and via direct web downloads, we had to develop our own licensing server. Because we are not server-side developers, we opted for a server built with the same programming language used to construct Agenda itself: Swift. We added in the Kitura server framework from IBM, and a few bits and pieces of Vapor, and host the whole thing on Heroku.

The server is fairly standard: it tracks user accounts, and the In-App Purchases (IAPs) made. The user accounts are also used for our in-app Agenda Community. (The community is another Agenda innovation that we will blog about in future.) The IAPs can take place via any vendor; we currently support the Mac App Store and Paddle.

A lot of the complexity of the server is just validating purchases. When a purchase is made on the Mac App Store, the Agenda client app uploads a receipt which must be validated with Apple’s servers. With Paddle, a webhook is called when a purchase goes through. Our server validates the purchase, and then adds twelve months to the user’s license.

On the client side, from the Agenda app’s perspective, there are a number of premium features, each with a date of introduction. The client app queries the server for the license status. If no purchase has been made, all premium features are locked; if there has been a purchase, a feature is considered unlocked if the license expiry date falls after the introduction date.

In principle, it’s all pretty straightforward. Of course, the devil’s in the details. I was quite surprised how much work was involved in getting it all working. Probably 3–4 months all up.


And that is the one downside of the model at this juncture. It is much easier to just upload a binary to the Mac App Store with an up-front purchase fee than it is to build a cash cow server, and the accompanying client app integration.

But cash cow feels like the ‘right’ model; the way a Mac app really should be sold, assuming you were prepared to overlook the implementation cost. We decided the cost was worth it for Agenda, and hopefully, if other Mac apps start to move in this direction, frameworks will become available to make it all much easier.

And whether the sales model actually bears fruit will — naturally — only be something we can answer after the Agenda launch on January 22nd.

Agenda Links