Apple just removed progressive web app support from iOS 17.4 beta 2 for users in the European Union. Web apps that worked like native apps, that could send push notifications, that users had saved to their home screens: gone. Data stored in those apps wiped when they stopped launching as standalone apps and started redirecting to the browser instead.
This is not a bug. The new build includes explicit text telling users that web apps will now open from the default browser. That is a product decision.
I have been here before.
In 2019 Google banned Love Score from the Play Store. The app had no internet connection. It processed SMS metadata entirely on device. It sent nothing anywhere. Google banned it anyway because it accessed a sensitive data category. The technical reality did not matter. The category did.
Apple is doing something structurally similar. The stated reason is compliance with the EU Digital Markets Act, which requires Apple to allow alternative browser engines. Because PWAs on iOS have always depended on WebKit, Apple is claiming it cannot safely support them under the new rules. Critics are calling this malicious compliance: using a consumer-protection law as cover for removing capabilities that compete with the App Store.
The pattern is the same:
- Platform sets rules that serve its own interests
- Developer builds something useful within those rules
- Platform changes rules when those interests shift
- Developer's work is removed, degraded, or blocked
- No warning, no timeline, no appeal
What the web being "open" actually means: the protocols are open. The runtime is not. Apple controls what APIs Safari exposes on iPhone. Google controls Chrome. Mozilla controls Firefox. Each of them can restrict what your web app can do and the constraints can change at any time without notice.
The platform is never neutral. It is controlled by a company with its own revenue model. The web reduces the number of gatekeepers but it does not eliminate them. The lesson from Love Score was not specific to app stores. It was about any runtime owned by a party whose interests can diverge from yours.
If you are building something that depends on a capability a large platform controls, that dependency is a risk. Not a theoretical one.
Discussion