From Bootstrapping Kiwi by Tim Daubenschütz
If you have followed the news lately, you might have come across articles about Apple’s iOS 17.4 update and how it relates to “Progressive Web Apps” (otherwise known as “PWAs”).
The gist of the story is that Apple is going to release the iOS 17.4 update soon, and it’s going to severely impact the usability of PWAs. In this post, I want to summarize the story and explain how crypto apps like Kiwi News are being affected by this update.
What makes PWAs?
If you don’t know what a PWA is, please go research that yourself. However, for those who have a basic understanding, PWAs allow a web developer like me to build native-app like features into a site like Kiwi News; for example, we can make the app appear on someone’s home screen without having to go through the App Store review, I could implement sending push notifications, and on Android, users can even share links directly to the Kiwi News app, making submitting links much faster. Running a PWA in iOS also means getting a separate storage space for the application. That’s why you’ll have to “reconnect” your wallet when you open the Kiwi News PWA versus when you just open it on mobile Safari.
Why are PWAs a big deal?
PWAs are important because they allow small businesses like Kiwi News to efficiently cater to many users with a very small code base. I’ve said this in the past already because Dan Romero keeps on suggesting shipping a native iOS app for better retention of consumers; but as a 1-developer startup like Kiwi News, we’ve intentionally opted to ship a single website that can be used on Android, iOS, all tablets and all desktops alike. For us, this is great because it is extremely efficient. There’s just one code base for all platforms.
Additionally, for a crypto-native app like Kiwi News, a PWA allows us to ship an almost iOS-native app experience to users without having to comply or pass the App Store review. We have no limitations whatsoever on what content we are allowed to show on iOS, and we have no limitations on what financial primitives we implement, etc.
A few weeks ago, I would have said that, in general, Apple and Google don’t have much leverage over us because we’re not using a lot of Apple-specific functionality they can threaten to take away from us. I guess I was wrong…
What happened in the last year to PWAs?
The last year has actually been amazing for PWA developers because Apple has embraced PWA functionality in many of the new updates. If you’re a consumer in the crypto space, you might have experienced this too because more developers shipped PWAs seriously, among them us, friend.tech, and many others.
This was because Apple actively added many new features that brought PWAs almost on par with native iOS apps. One such example is that they finally added Push Notifications which made friend.tech pop. Many in the scene even remarked that friend.tech’s hype was uniquely nicely timed with the release of Push Notifications on iOS, which made their instant messaging features work 10x better.
Like others, Kiwi News has profited from these waves of new features and mainstreaming of PWAs in the consumer market. For the longest time, we’ve taken our chance quite seriously, and we’ve tried to compete with the bigger fish in building a great consumer application.
What was special about Apple’s PWA implementation?
Other than on Android, Apple has made PWAs solely functional via mobile Safari. This meant that the Safari browser had, for the longest time, a de-facto monopoly on many PWA functionalities in iOS.
So far, this has manifested in, for example, the “Add to home screen” option to only be available in mobile Safari but not in Chrome on iOS. For us web developers, this wasn’t a big deal as we simply prompted users to re-open the site in Safari to find the button there.
The reason for this, among many things, is that Apple said it wanted to ensure privacy and security for its web users, and so it actually only permitted browser apps based on mobile Safari’s rendering engine to be released on the App Store.
So, if you’ve been using Chrome on iOS and you thought that it had a performance edge over Safari, most likely you misled yourself because the core rendering engine of iOS Chrome is Safari, too, as Apple doesn’t permit other browser-rendering engines on iOS. Well, until now!
What’s going on in iOS 17.4, and why is it a problem?
The EU actually noticed the above and saw this as a monopolistic practice by Apple because the EU thinks that iOS users should be able to freely choose whichever browser they want on an operating system. So, the EU drafted a regulation that went into effect also on other operating systems, which makes it so that you as a user have greater choice.
This regulation text has already existed for several years now and, to my knowledge, was also already implemented by many other tech companies. However, Apple recently then released a statement saying that, given the new requirements mandated by the EU in the “Digital Markets Act,” it sees itself forced to downgrade some of the recently added PWA functionality on iOS to enable this mandated browser neutrality. This happened very recently and coincides with the EU’s DMA deadline.
If you happen to read Apple statements, it’s kind of like out of a dystopian movie because they’re very deliberately casting blame on the EU, and they’re indirectly pressuring web developers by taking away PWA functionality. They say: “Look, PWA developer, the shitty EU has made some shitty rules, and therefore we’re going to downgrade your users’ experience now. This is all their fault. Blame them.”
However, the issue with these statements is that they don’t match either with what Apple has been doing in the last few months with embracing PWAs in iOS, but neither does it square with the EU’s DMA timeline, which gave multiple years of time to implement these features.
My interpretation of this is the following: Apple has waited until the very last moment to implement the EU’s guidelines. And they’re justifying downgrading PWA functionality because it is a lot of work for them and because the EU-mandated browser-neutrality is incompatible with how PWAs are currently implemented on mobile Safari only. But all of this is very confusing, as they MUST have known about the issues with the EU’s DMA WHEN they added all these nice new PWA features in the last months.
What are the consequences for Kiwi News?
For Kiwi News, we have some consequences that follow from the iOS 17.4 update:
- When you've installed the PWA on iOS, in the future, it'll only open as a tab in the browser, not as a standalone application anymore.
- All users who used Kiwi News as an iOS PWA and delegated upvoting power to a temporary key will have to re-delegate. Your private key that has been stored in local storage will be permanently deleted by Apple’s update.
- We won't implement push notification support because Apple is stopping support for it.
Why is this an attack on crypto?
In crypto, we believe in permissionless innovation. But shipping apps on the App and Play Store isn’t permissionless. Those stores have very deliberate policies that only allow certain groups of applications. That’s why OpenSea’s iOS app, for the longest time, didn’t allow a user to buy the NFTs straight in the app. That’s why Warpcast has a weird checkout process when buying Warps, and that’s why all the more innovative financial applications have hardly bothered ever to ship an iOS app.
See, people tend to often misconstruct web3 and crypto as “bad UX” because, as developers, we must be incompetent to replicate the web2 application UX.
But this is not true, as we crypto web developers have had to play 3D chess with big tech for many years to find gaps in their application interfaces that allow our apps to be neutral with respect to what we can ship.
For example, if Kiwi News shipped to the App Store, then most likely, we would have to understand whether users in iOS are allowed to purchase an NFT from Zora on our site.
We would also have to understand whether the Dawn Wallet tipping is against the App Store Terms of Service. We would have to demonstrate a particular content moderation system that Apple requires. And so on.
Now, none of this is “bad” if you are shipping an iOS app as a startup, but for us, it has been the much better choice so far to ship a PWA. This is because it is more scalable for us as a bootstrapped business, but also because it doesn’t limit us in what we can and cannot do.
But I think this is also a straight-up attack on crypto from Apple because PWAs allow financial and social innovation on the web without requiring Google or Apple’s permission. For Kiwi News, this also meant that bootstrapping an NFT and RetroPGF-funded project became possible as I, as a single dev, was able to ship to many platforms at the same time.
By weakening PWAs on iOS, Apple now forces many PWA developers to integrate with their operating system natively. This could mean that consumers end up getting nicer features in the future. But this also means that there’ll be less permissionless innovation and that “the vision of the open web” is once again weakened by a global player. If more web3 consumer apps ship to App Stores, then all this will do is give Apple total leverage over what features they can implement in the future.
Conclusion
In conclusion, I want to end by expressing my deep disappointment in how Apple has behaved here. Already in the Epic Games lawsuit, Apple has shown its true color as being a greedy and unforgiving player by “proposing” unfavorable terms for developers not using the App Store for payments.
Apple has made deliberate statements misleading the public to believe it is the EU’s fault for these PWA regressions. I find this extremely demotivating, considering it was written by Apple in California and knowing that there are people holding an active grudge against the government of my country.
I do understand Apple’s resentment towards the EU, but I also think that browser neutrality is actually a really reasonable demand for consumers. I think it’s really unreasonable to gas-light consumers and the developer community with an “America-first, fuck the EU” press release.
I’m angry because I own a Macbook, Airpods, and an iPhone. I’m angry because I know our users WANT the PWA experience. I’m angry because I’m being treated like a pawn.
If you’re reading this and you happen to have influence in Apple, consider for a minute what Steve Jobs would have done here. He was pro open web with his open letter to Adobe, “Thoughts on Flash.” If you watch old interviews, this is obvious, too.
I’m still hopeful that this will end in all of our favor, but if it doesn’t, it is a direct financial loss for me, my company, and our users. One can only hope that then, at least, the depressed Apple stock moves a little upward…
All Comments