Jeff Johnson (My apps, PayPal.Me, Mastodon)

Feedback Assistant Boycott

Beware of App Store app bundles

January 19 2024

This is a follow-up to my post StopTheMadness Pro postmortem: crApp Store still crappy. As I explained in that post, I recently released StopTheMadness Pro, a major update to my Safari extension StopTheMadness, and since the App Store doesn't support paid upgrades, my workaround was to create app bundles in the iOS App Store and Mac App Store that include both the old StopTheMadness app and the new StopTheMadness Pro app. Then previous purchasers of the old StopTheMadness app could use the Complete My Bundle feature to purchase the new StopTheMadness Pro at a discount. In the previous blog post, I mentioned several problems that customers were experiencing with the app bundles. I've now learned of an additional problem, the worst problem of all, a problem that appears to have no solution.

In 2020, I created a Mac App Store bundle for StopTheMadness and another one of my apps, Link Unshortener. This bundle allowed previous purchasers of StopTheMadness to purchase Link Unshortener at a discount. I removed the StopTheMadness Link Unshortener Bundle from the Mac App Store at the same time I released StopTheMadness Pro. Unfortunately, I've heard from several customers who previously purchased the StopTheMadness Link Unshortener Bundle that they're not seeing a Complete My Bundle discount for the new StopTheMadness Pro Upgrade Bundle.

The first thing I tried was to create yet another new Mac App Store bundle that included Link Unshortener, StopTheMadness, and StopTheMadness Pro. It took a number of days for Apple to review and approve the bundle, just like with the upgrade bundles, as I complained about in the previous blog post. At the end of the wait, there was no joy, because the customers did not see a discounted Complete My Bundle price with the new bundle either.

Someone suggested to me that removing the old StopTheMadness Link Unshortener Bundle from sale was the problem, so I published the old bundle again to the Mac App Store, but that didn't help either.

Thus, I contacted Apple Developer Support about the problem, despite the fact that Apple Developer Support was seemingly useless the last time I contacted them about bundle problems (as also described in the previous blog post). After weeks of back and forth— mostly waiting for responses from Apple —I think I've finally received confirmation of my greatest fear: Complete My Bundle prices are available only for previous purchasers of standalone apps, not for previous purchases of app bundles. I say "I think" because I haven't been allowed to speak directly with Apple engineering. I had to go back and forth with an intermediary, an Apple Developer Support representative, who hasn't personally demonstrated much of a grasp of the situation. The responses from Apple engineering have been terse, and it's not entirely clear that they have a full grasp of the situation either, so I've been forced to play interpreter and guess at their meaning. Perhaps I'll keep trying to get a clearer, more definitive answer, but the back and forth has already been quite frustrating.

The conclusion, if my interpretation is correct, is that previously selling an app bundle for StopTheMadness and Link Unshortener ended up backfiring on me when I needed to sell an app bundle for StopTheMadness and StopTheMadness Pro. There's no upgrade path for those customers. They would have to purchase StopTheMadness Pro at full price. Moreover, I've also heard from another customer who is unable to receive a Complete My Bundle price for StopTheMadness Pro because they purchased StopTheMadness via an even older app bundle that included StopTheMadness and Underpass, an app that I discontinued back in 2021 due to very low sales, as well as Apple breaking some API used by the app.

Fortunately (in some sense of fortunate), given the very low sales of Underpass, there were very few purchasers of the StopTheMadness Underpass Bundle. However, the StopTheMadness Link Unshortener Bundle had a lot more customers. Even if I wanted to give free copies of StopTheMadness Pro, via App Store promo codes, to previous purchasers of the StopTheMadness Link Unshortener Bundle, it would be nearly impossible, because App Store developers receive only 100 promo codes per version of an app. And the primary use of promo codes is to give to members of the news media, for self-promotion (hence the term "promo"). There just aren't enough promo codes available to cover those customers, and I can't verify previous purchasers anyway, because Apple doesn't give App Store developers any access to App Store transactions. I have no idea who my customers are, individually, unless they email me and claim they're a customer!

In any case, I don't really want to give out free promo codes, because the entire point of releasing a paid upgrade was to earn additional money from previous customers. Furthermore, when I introduced the StopTheMadness Link Unshortener Bundle in 2020, StopTheMadness was cheaper than in 2023, as I've raised the price a number of times. Upgrade revenue from previous customers is crucial for indie developers, because we can't "make it up in volume". The most difficult task for an indie developer is to find new customers with not much capital for advertising and not much press coverage. (Honestly, I was a bit disappointed with the amount of coverage for the StopTheMadness Pro release.) We rely heavily on previous customers, both for word of mouth advertising and for paid upgrades. It's important to recognize that indie development is not a great path to personal wealth. To this day, I still make less money per year from the App Store than from the job I quit in 2016. And although every year in the App Store has been better financially for me than the previous year—which is not saying much with regard to the early years!—this would not have been true about 2023 without the paid StopTheMadness Pro upgrade. The last two weeks of December are what put 2023 revenue over the top.

I still believe that the upgrade app bundles were the least worst of my available options for StopTheMadness Pro. Adding an In-App Purchase to the old StopTheMadness app would not have been technically feasible, because there were massive architectural changes in StopTheMadness Pro, making it nearly impossible to release the functionality of those two apps in a single app. StopTheMadness Pro needed to be a brand new app. Moreover, it would be weird to have an IAP in an app that's already paid upfront. This would make potential customers wary.

Another alternative would have been to release StopTheMadness pro without any upgrade bundle but instead discount the price heavily for an introductory period. This of course would have been a better deal for the customers who purchased the Link Unshortener and Underpass bundles. On the other hand, it would have been a worse deal for a lot of other customers. If you purchased StopTheMadness in the Mac App Store right before StopTheMadness Pro was released, you can Complete My Bundle for a mere $3 USD, whereas even a heavily discounted introductory period would have cost these customers at least $8. Given the limitations of the App Store, there's really no scenario where I could have accommodated every previous customer. Justified or not, some of them were going to feel "screwed" no matter what, and I don't know how I could have avoided that while still trying to sustain my indie development business indefinitely. If I go out of business, nobody wins.

In retrospect, despite my defense of the upgrade bundles, I nonetheless regret ever having sold the StopTheMadness Link Unshortener Bundle and the StopTheMadness Underpass Bundle. As well as the new Link Unshortener StopTheMadness Pro Upgrade Bundle! It's now removed from the Mac App Store, but during the two weeks that it was available while I was going back and forth with Apple Developer Support, the bundle sold about 60 units. I didn't intend for anyone to buy it unless it allowed an upgrade path from the older bundle, which it didn't. Knowing what I know now, I think that using App Store app bundles for any purpose other than paid upgrades is a mistake. And they're not particularly good for paid upgrades either, but they may be necessary in some cases. I don't know what I would do in the future if I wanted to do another paid upgrade, but given that the first paid upgrade was five years after the initial release of StopTheMadness, that's not a problem we have to worry about for a number of years.

What I would say to any previous customers who may feel burned by the StopTheMadness Pro upgrade situation is that the natural alternative to the path I chose would be… subscriptions. I hate software subscriptions as much as anyone and would have hated a StopTheMadness Pro subscription as much as you would have. Yet I can understand why many indie developers have adopted subscriptions. As I said, we need upgrade revenue of some kind, and the App Store doesn't provide us with any good options, only a few bad options. Before you complain about the one-time upgrade price of StopTheMadness Pro, consider the possibility that you could have been paying forever just to rent the app. ;-)

Feedback Assistant Boycott

Jeff Johnson (My apps, PayPal.Me, Mastodon)