Replacing billionairish platforms with ZIP files

January 23, 2025 by olgax

How can we evolve and deploy web apps without allowing developers or operators to become a “billionaire in the middle”? There are many ways to try to address this challenge and some involve the technical Internet protocol foundations. The “Web”, and the HTTP protocol in particular, arguably played a big part in producing tech billionaires with their possibly unprecedented power and money concentrations today.

three spidermen pointing to each other, respectively labeled with 'messenger devs', 'webxdc app devs' and 'web app users' Joined by XMPP-messengers Cheogram and Monocles, and supported by many contributing experts in the background, we are playfully addressing the no-billionaire-platforms challenge with webxdc, a container format and API for “chat-shared web apps”. Technically, webxdc apps are network-sandboxed HTML5 apps and instead of the HTTP protocol they use Peer-to-Peer send/receive APIs implemented by webxdc-capable messengers, rebasing relations between developers and users by saying

This all sounds too good to be true, right? But what if another reality is possible by just stretching out our hands and grabbing it?

Let’s look at some recent webxdc community advances, new webxdc app capabilities along with updates to the webxdc specification, and finally at some community-produced webxdc apps already in everyday use, as working first approximations on how to replace whole Venture-Capital platforms with a ZIP file :)

Integrated and streamlined webxdc app discovery

screenshot of new web app store view on a desktop browser There is a curated collection of apps available at https://webxdc.org/apps which got a thorough UX/UI streamlining by Jag Talon, a former DuckDuckGo frontend designer. It’s a static web page offering “tool” and “game” search with short descriptions and per-app URLs so you can point people to a particular app. The web page sources its content from this json app list file, generated by commits to the codeberg submission repository. Anyone can run their own curation pipelining and re-use the web interface.

view on input field after 'attach' action with the 'app' selection circled The new webxdc “app-store” web view was designed to integrate well with webxdc-supporting messengers through an “attach-app” action of the chat message input field. Apart from Cheogram, Monocles and the mainline Delta Chat apps, also ArcaneChat (a soft Android-fork) and DeltaTouch (a Lomiri-based UI for UbuntuTouch phones and some desktop environments) offer this new instant attach-app action. Delta Chat apps run the app-picker with cached data so it works during offline times. Most messengers also allow to configure a different URL for an alternative app-picker web page.

Note that webxdc app store sites seed apps but don’t control anything afterwards. They can not collect any metadata or content data about their usage. It’s like distributing .exe files in former times, only safer and more convenient through permission-free and decentralized web-app curation sites. Sorry GAFAM, not sorry.

Webxdc apps can cause instant notifications

notification showing that it's Hocuri's turn to make a move

We collectively specified and implemented a new webxdc notification mechanism so that apps like Chess can cause a system-level notification between app users aka “it’s your turn”, and the calendar can notify about “your chat partner added a new meeting date”. Webxdc app developers re-use the existing push notification machinery of their host messengers without having to scream at Google or Apple compliance bureaucracy themselves. For webxdc apps to “notify” users they need to specify a list of identities when sending application updates. The webxdc.selfAddr spec describes the details of the new carefully designed “per-app” identity scope.

view on a chat where a chess-app challenge is arranged

Webxdc apps can query sending rate limits

view on an editor-app showing information about upcoming "DC OFFDEM/FOSDEM logistics Different messengers and transport servers have different “send rate limits”, namely how many messages are allowed to be sent per time duration, and how many bytes an application update can carry. The updated editor app now respects sendUpdate limits, providing for a smoother transport-adaptive user experience. The recently introduced webxdc realtime channels have a specified 128KB size limit for ephemeral application updates. Ephemeral realtime application updates are only distributed between devices actively running a webxdc app that called the joinRealtime API.

Webxdc apps can be placed on mobile home screens

Webxdc Apps on Android and iOS home screens

On Delta Chat Android and iOS phones you can now add a running webxdc app to your home screen. Tapping a webxdc app on your mobile home screen will directly start it, and everything remains responsive also while offline. Remember, there is no HTTP server for webxdc apps. All webxdc app state is local, and each webxdc app sends and receives updates by interacting with “localhost” only, leaving all actual network routing to messengers, while being itself blocked from leaking anything to the Internet.

Replacing VC-funded platforms with a ZIP file …

There is no shortage of Venture-Capital fueled mediator platforms that offer “free” web apps or mobile apps (mostly web-apps in disguise) to mediate interactions between private circles. What if you could run such apps in your private chats without needing any mediator, sign-ups, logins etc? Here are a few fun VC-platform-replacement candidate zip files.

View on the app store entry of the new Split Bill app

Split Bill allows everyone in a chat group to register “expenses” and provides a “balance” view of who owes/is owed currently. Anybody who enters an expense becomes part of the bill but you can also “join the bill” if you don’t add expenses. Split Bill intentionally provides a basic UI. If you feel inclined to add features like a “settle up” button, please fork from the codeberg split-bill repository, maybe tell Jag about it, and submit a new app to the webxdc collection. Or maybe you have an idea how to evolve the split-bill app to become a “solidarity-party” app to help accounting when organizing monetary support for people in need?

View on the app store entry of the Shopping List app

Shopping List allows families, friends and other collectives to easily arrange for daily shopping. The “Shopping list app” provides a simple view for entering “missing” items which can be “checked” when someone bought it. It’s recommended to have a special-purpose “Shopping” chat group/room to ask aboutor clarify specifics of shopping items. There even is a “dark mode” and an icon to disable/enable “chat notifications” when the shopping-todo-list changes.

View on the app store entry of the Todo List app

Who doesn’t love todo-lists, the bane of modern existence?
Now you can do them nicely in a chat group. Or maybe you prefer the classic checklist, one of the first webxdc apps back in 2023.

View on the app store entry of the Wonster app

Wonster is a popular daily family puzzle challenge. Every chat group gets their own unique Wonster challenge.

Sharing “Finished Software” could be a thing again!

View of a CD-ROM from 1991, with "So much Shareware!" printed on it

Webxdc app developers may improve an app over time or they may call it a day. The webxdc specification aims to provide long-term backward-compatibility. Once written apps are to work for a long time, on today’s as well as future webxdc-capable messengers. Say Bye Bye to integrating with complex frameworks, broken dependencies, “forced API level upgrades”, new toolchains or store buereaucracy like “your app will be delisted if you don’t declare compliancy with X” etc. Nothing can prevent using a webxdc app with friends if you have, in your hand, the zip file and a webxdc-capable messenger with a chat group/room to “run” it. No worries about VPS or web hosting, DNS or SSL certificates. Peace!

Curious and interested to join some “replace-VCs-with-ZIP-files” fun and work? Getting started with webxdc development provides tutorial material and introduction chapters on what is involved when replacing HTTP with Peer-to-Peer protocols.

We are handing over the mic to the wonderful Rosano who did a succinct intro video a while ago.

Thanks to NLNET and NGI for their support and vision!

NLNet Logo
Much of our efforts described above became possible by the vision and support of NLnet-managed funds, financially supported by the European Commission’s Next Generation Internet programme.


Show Comments


You can reply on any Fediverse (Mastodon, Pleroma, etc.) website or app by pasting this URL into the search field of your client:

https://chaos.social/@delta/113877745572056794