My take on ActivityPub

#service#rust#backend#frontend#architecture::alemi::2024-03-14 17:57

μpub

ActivityPub is a W3C decentralized protocol for social networks (but not only!). The most famous implementation is Mastodon, which powers over half of the network (which is called the Fediverse).

A few years ago I was actively looking for alternative social media: I don't want to pump out content for the big gatekeepers, so that they can monetize it behind my back while building an accurate profile of me and my interests (which could be used to discriminate).

The Fediverse really caught my interest: being decentralized I can completely own my data and decide where it flows and how long it stays up. This is awesome! I've been a Mastodon user since the end of 2022 and later in 2023 migrated to Akkoma. I've had a splendid time on both but neither really fit all my needs.

One of my biggest gripes with current Fediverse is that different platform aren't fully intercompatible: articles posted on Lemmy (a reddit alternative) don't federate nicely, often lacking link or picture or replies. Another big issue is privacy and content addressing: while AP allows to finely control who (in theory) has access to your content, most implementations just offer 4 (or less) "levels of privacy".

So I decided to try and cook my own implementation: μpub!

This is quite an ambitious project, but nonetheless I dove right in! I'm making my own frontend and backend, both completely in Rust.

This is an ongoing effort: it likely will never really be done as the Fediverse keeps evolving, but as of july 2024 it's definitely usable! Be sure to check out the dev instance to get a feel of how it looks and works.

website -- dev instance -- source code