Patreon being forced to pay creators through in-app purchase reminded me of a cool app I made two summers ago.

VPN clients on iOS lie on a spectrum between selling you out to data brokers or being expensive subscriptions.

Having prior experience with Digital Ocean my app made it easy to spin up droplets configured as VPNs ready to use from your iPhone.

It was so fast that droplets could be launched on-demand and shut down fast keeping costs extremely low.

The app used OAuth to act on behalf of users on their personal Digital Ocean accounts making the cumbersome task of setting up a truly personal VPN available to the less technical or less patient user.

App Review rejected the app because I didn’t collect payment to Digital Ocean through in-app purchase.

Tried to appeal and spoke to Apple on the phone arguing that the payment was outside my control and that my app was a privacy boon but they did not care.

Without a way to collect a revenue cut for Apple the app wasn’t allowed.
@palmin Sounds like it would’ve been a wonderful app!
@palmin Have you thought about releasing it on @altstore ?
@spitfire @palmin @altstore Yes please, also with support for Hetzner would be amazing!
@palmin This is great app idea. Maybe something like a tip jar would satiate Apple and keep the original idea mostly intact.
@palmin It doesn’t matter that it is privacy-conscious if it doesn’t produce revenue for Apple.
@palmin Wow. You just flipped me on the App Store cut. Most of the time I have felt like there are frustrating but comprehensible trade offs. But “you didn’t collect payment on something you don’t offer”? Nope. Where do I send my letter to the DOJ?
@palmin @eramdam one of my apps was rejected because it was possible to use an embedded web browser to navigate to any website where you could buy things outside of Apple's ecosystem.
@ecn @palmin @eramdam Embedded web browsers absolutely should be rejected because they're inherently phishing. They lead users to enter credentials for other sites/services into your app without realizing it's your app. Only an app clearly presented as a browser be allowed to act as a browser.

@palmin

Can I get it on Android? Sounds good

@palmin

Even better: they kinda admit that. It's mandated in the App Store guidelines (iirc) that all purchaces made because of the app are handled through Apple's in-app payment API...

Yes, you can apply for an "entitlement" to not do that, but then you have to give them basically the same cut yourself.

Because subtlety is dead.

@palmin I hope the DOJ breaks up their store. I'm so sick of monopolies screwing us.
@palmin genius. That's why we needed #DMA, @altstore (and FLOSS phones like @e_mydata)
@palmin Have you ever written about this before (before this thread, that is)?
@gruber I have not. When it happened it made me extremely disappointed and I decided to focus on other things.
@palmin I can’t blame you. But man, this sounds like an almost perfect hypothetical example of the problems with Apple’s App Store rent demands, but it isn’t hypothetical. It’s actual.
@palmin I wonder how many stories there are of apps that never got made because of stuff like this. @viticci can we have that as a Macstories feature alongside your iOS18 review?

@palmin I’m guessing that it was probably possible for users to create a new Digital Ocean account within the app, possibly from an embedded web view that was intended to allow them to sign in and get the OAuth credentials?

I’m not defending Apple’s choices here, but if that was the case it would fit more squarely within the expected cases for rejection we’re used to seeing.

@palmin @hailey I really hope the DOJ gets their crap together and slaps the snot out of Apple soon. The payments must be through them App Store requirement is egregious, especially on top of no side loading.
@palmin Could it not be done as a PWA?
@dalias
A PWA can't configure iOS' VPN settings to talk to the newly spun up instance.
@palmin
@smolwaffle @palmin Yeah. Is it possible to c&p needed settings tho or does iOS make that difficult or impossible too?

@dalias
Maybe there's a file which could be generated? IDK, I'm not trying to write such a thing.

It would also require hosting a web app that deals with auth etc rather than having that all local, which adds further complexity.

I think the point is that Apple won't let you do lots of things which would be useful because they can't make money on it, not that it's impossible to do useful things despite the limitations they artificially impose.
@palmin

@smolwaffle @palmin Yeah. I'm just always looking at "can this be done with PWAs?" because ultimately that's the way out of the walled garden trap. But ways to do PWA that don't involve a website having authority to change the code out from under you or disappear are also needed...

@smolwaffle @dalias Perhaps it would be possible by someone else but not me.

I had some experience with Digital Ocean APIs, cloud config and networking on Apple platforms and felt I could improve the state of VPNs on iOS but it wasn’t meant to be.

@palmin @Migueldeicaza funny, I built something similar for myself when I noticed the country I’m in restricts internet access. I built it so that I can spin up a @tailscale exit node on demand, to be used by the whole family. The Vultr bill for the whole holiday was under a dollar.
@palmin sounds like a great app for in a third party App Store, right now I have a vps always on for Tailscale, but that’s not really ideal.

@palmin Ouch. I would absolutely have purchased such an app. But it’s bad luck for me because without a clear way for Apple to take a cut I’m out of luck.

If you ever decide to release it on Alt Store or something I’d happily lay 2€ a year or whatever CTF B.S. Apple wants from you.

@palmin Sounds like an amazing app. 😭
@palmin is the source open?
Or do you have structural API documentation that you'd share?
@palmin well, ironically, this is what I use the droplet feature for on Secure ShellFish
@palmin that’s so disappointing - it’s exactly the kind of VPN service I’ve often thought of putting together myself. Would’ve happily paid for such an app to avoid the roll-you-own hassle.
Yet another example (in addition to Bandcamp and Patreon) of how Apple enforcing in-app payments harms devs and stops users having nice things. Regulators do your thing