A RetroClip Retrospective

As of now, RetroClip, our macOS app for instant replay screen capture, is free on the Mac App Store! To mark the occasion, I'm going to share some additional backstory and things I've learned since we introduced RetroClip.

Back in the winter of 2017, Nick Sivo and I were working on a Mac native GitHub code review app that we planned to release on the Mac App Store. It was basically a streamlined and standalone, non-software-as-a-service version of our former product Ship. I was procrastinating working on that project by code golfing what became RetroClip, and I justified this procrastination by a plan to trial trialware on the Mac App Store via RetroClip.

I was initially attracted to the idea of trialware for our GitHub client on the Mac App Store because the Omni Group apps went that route. My plan was to try the same thing with RetroClip so that I could battle test my In App Purchase code, and then by the time we had our more ambitious product ready, we would have our payments process dialed in to go with it.

What actually happened was Nick and I moved on to other things, and we never did end up releasing that standalone GitHub code review app. But, meanwhile, the RetroClip pricing experiment went forward and the results are now in. In short, I don't recommend it!

StoreKit

First off, StoreKit, the API used to do In App Purchase, is just not all that stable, especially across a broad range of macOS versions. Without getting too much into the mechanics of how it works1, In App Purchase relies on communication between the app you're using and an App Store daemon process.

Unfortunately, the Mac App Store has a bit of a reputation for getting stuck. I wish I had some great technical analysis for why this is I could share here, but it's probably not one single root cause, and it's just common enough to be a problem but not common enough to show to the mechanic Feedback Assistant. If you've used the Mac App Store much (or the iOS App Store for that matter), I bet you're nodding your head right now. It just goes out to lunch sometimes, and typically the hang can be resolved by either waiting a little while, or killing the store daemon or rebooting the whole machine.

When you open up App Store.app and you go to download or buy something there, and you get an error or the download hangs or whatever, who do you blame? Apple! But when you download an app that has a trial or unlocks functionality via In App Purchase, and you try it and it doesn't work, who do you blame? That's right, the app developer!

And, honestly, you're right to blame the app developer! Whether a bug is in the OS or in application code (and the vast majority of the time it's the latter), as an app developer ultimately the buck stops with me. If some OS functionality isn't reliable, it's my responsibility to avoid it, which I have now done by just making the whole app free. That said, complaining about Apple bugs on a blog is a time honored tradition.2

Overall, only a small fraction of customers, well under 1%, ran into problems buying RetroClip via In App Purchase, and I think I was able to help everyone get things sorted over email. But enough people were affected that I felt bad about it, and there were enough that I wouldn't want to repeat the experience.

Volume Purchase Program

Some of the first inquiries we got about RetroClip were from software QA departments looking for a way to install RetroClip on a bunch of machines for a bunch of users. Apple has a thing for this, it's called Volume Purchase Program. But, it only works for the old school pay up front pricing models. If you're doing one time In App Purchase or a subscription to unlock functionality as your pricing model, as best as I can tell, you're out of luck for selling site licenses.3

So when people came asking about site licenses, I initially didn't know what to tell them, and I bungled my approach to the first several volume customers. Nobody is going to create App Store accounts and manually download and go through the In App Purchase process on dozens or hundreds of machines just for a $5 utility. What happened was the potential customers ended up not getting a useful tool and I ended up not getting money, so just a bad deal all around.

Eventually, I wised up and produced a non-App Store version of RetroClip. When somebody wrote in and asked for a site license, I just sent them an invoice on PayPal and gave them a link to download the unlocked app. I was just a small player selling a small app, so a low tech process was OK, but in general, some method of having a purchase process external to the Mac App Store seems to be necessary, which is unfortunate.

Conclusion

I'm happy to make RetroClip free. In some sense, it always should have been free, because what I got most out of it was the satisfaction of making it and making use of it myself. The idea of selling it was in service of something else that never came to be. And the idea of marketing it was just an inside joke between Nick and I that got out of hand.


  1. See Apple's documentation if you want the details. 

  2. And no, I have not filed a Radar. Sosumi. 

  3. You could submit a separate "Enterprise" version of your app to the store that has the up front purchase pricing model, and I know apps that have gone this route, but this too has drawbacks. People will be confused as to which version to choose, you'll end up partitioning your reviews, and you have the extra overhead of maintaining multiple listings in the store.