- cross-posted to:
- technews@radiation.party
- cross-posted to:
- technews@radiation.party
Trying to make web applications federated is a popular effort. Examples include things like the “fediverse”, as well as various other efforts, like attempts to make distributed software forges, and so on. However, all of these efforts suffer from a problem which is fundamental in building federated applications built on top of the web platform.
The problem is fundamentally this: when building an application on top of the web platform, an HTTP URL inherently couples an application and a resource.
Except it doesn’t couple an application and a resource. Serving the application/web UI is only a side effect of the browser requesting the resource be served in HTML format, which brings up the web application. It’s a backwards compatible convenience for users to be able to access the resource in more than one way.
If you request the same thing in
application/activity+json
format then you get exactly the same resource, but in machine format. Lemmy apps use that for example to display the content natively and completely bypass the web application part of it.The browser very well could say it accepts both ActivityPub and HTML format, in which case the server would serve the ActivityPub that the browser could display using some native implementation. And bam, there’s no longer an application+resource tie.