https://apps.apple.com/us/app/delta-chat/id1459523234
The beauty of the ecosystem is that apps are just zips of a webapp that is self-contained, and uses the webxdc api to message other copies of itself running on other folks' phones that are part of that chat group. Basically, the app communicates (and is distributed over!) the group chat (it's otherwise insulated from the internet). And because apps are just zipped webapps, they can be pulled apart, hacked on, and reassembled as needed for your group.
ChatMail relays tend not to retain info - they aren't hosts, they just relay encrypted messages (the platform mandates encryption). This sidesteps all the approval/review processes, and there is no app store or developer fee or even SDK. It's just folks trading apps and running them together.
It can't solve a lot of cases, but it solves some use cases (like a shared grocery list, or real-time card games, or games with leaderboards) really well.
My son had written a game like this called "Quantum Chain" that had basic leaderboard functionality. That was the first app we ported: the platform injects the webcdx.js shim, and we update Quantum Chain to post messages to it when someone finished a game with a high score. This is replicated out to the relays the same way every message in the group chat is. When the app fires up, Delta/ArcaneChat replay all messages that are typed for that app back to it, and it restores it's state that way. There's some localstorage caching to make this a bit more efficient as the stream grows.
So it's a bit like several services reading off the same kafka stream to stay in sync.
I've since ported over (and massive improved) my implementation of KenKen, which also has leaderboards. I then took on realtime gameplay: a card game my family likes called "Shithead" that supports 2-6 players. I built a first version in about 6 hours, and I'm still working out session management (so folks can join and leave games and everything syncs properly). Still a couple of edge cases to fix, but overall, it been trivially easy to bring over webapps to the platform that already exist, and a few hours of effort to create a new one.
I'm pretty thrilled with the whole ecosystem, as it gets me away from all the BS the companies have layered on top of the basic "Apps with Friends" experience ArcaneChat offers.
You can make perfectly good apps that run great with a free account. They expire in a week instead of 3 months (for TestFlight builds). That's it. You can redeploy with minimal effort. You have to reauth with Apple every ~30 days. The reauth is the only part of that you can't have a cron job run (you need to authenticate the keychain).
For normie folks, the hoops here are mildly annoying. But if you're someone making vibe-coded apps, we're talking about two scripts and a cron job, here. Or just run Sideloadly, which I hear works pretty well.
There exist reasons to be annoyed by Apple's iOS security posture, but "I can't run my vibecoded apps" isn't an especially good one.
Can I ask what your workflow is for this "minimal effort"? Maybe I'm missing something, as I thought it would require manual faffing with laptop, Xcode, etc. every week?
(PS I've tried the two prominent sideloading approaches, but couldn't get either of them to work on my iPhone.)
No thank you
For personal apps, the locked down stores are making themselves irrelevant. When you have software for one person, you don't want to publish it there. You want to bypass the gatekeepers.
Two apps fill niches that I've wanted to code myself (one, I've wanted to code for the last twenty years on and off), but have never had the time to do so. Now, the speed from thought to working prototype is insane (less than an hour); it then takes a few days of occasional work to turn that prototype into something architecturally sound and half-decent.
And after that... well, I just keep improving, refactoring, refining, because it's so much fun.
But yes, I don't really want to pay Apple $100 a year just to run my apps. So I just have them as PWAs. Wouldn't work for many use cases, like when you need Apple Fitness data, but works for me and it looks fine.
Don't do that, that's a PITA. Put GrapheneOS on it instead—simple, no hassle, works great
No complaints over paying more than >$100 a month in subscriptions with coding agents but $99 a year is some how too much?
Yet another reason why “developers” are just consumers that are selective complainers that want their tools to cost $0.00.
Clearly as already stated in the article, hosting and distribution is not free.
If I write an app for myself there is no need for hosting or distribution - it costs Apple absolutely nothing, and they don't need to be in the loop.
I've been able to run my own software on my computers forever, and still can on Windows, Mac, and Linux. It's just the mobile OSs that are different, and they shouldn't be. That's what sucks.
---
Related, I've been wondering if this issue will hit more and more consumers as vibe-coding personal apps becomes available to more and more people. Apple may have to change this aspect of its model, in time.
Plenty. The problem isn't so much the price as it is the loss of sovereignty.
It's not your model running on your computer, it's $CORPORATION's model running on their own data centers. They're just generously allowing you to use it, and only on their terms.
Just discovered webxdc in another comment here! https://delta.chat/en/2025-01-23-webxdc-no-billionaires
Aside from Apple, running homemade software on a phone was free of cost, even back in the days of Motorola flip phones running Java…