The following article is part of Diogo Peralta Cordeiro's Logbook.

What is the Fediverse?

Published in 2019-01-19 by Diogo Peralta Cordeiro.

What is the Fediverse?

The fediverse, a portmanteau of “federation” and “universe”, is part of the IndieWeb and consists of a decentralised social network that started with GNU social. Nowadays there are various pieces of software, other than GNU social, in the fediverse, like Pleroma and Mastodon, (all of which can be installed on your server).

The fediverse has grown to have its own culture and is relevant because quoting IndieWeb.org:

What does it mean to be decentralised in the fediverse context?

Before getting into that, let me just quickly familiarize you with the term Actor from the ActivityStreams 2.0 vocabulary, Actor is someone or something that makes an action: https://www.w3.org/TR/activitystreams-vocabulary/#actor-types.

Each node (a.k.a.: instance) of the network provides content and helps peers to see each other, content is available in the network as long, and to whom, its actor wishes, even if the actor (and/or the actor’s node) is offline. For this to be possible, each node hosts “all” the addresses of the external nodes and “all” their content (not really “all”, just the relevant for the actors involved). Actors send their content to a node and this becomes immediately available to all actors connected to the node, and is distributed to “every” other node (again, not every, it is distributed through the fediverse as it makes sense).

When local actors (actors in the same node) participate in discussions with external actors (from other nodes) or simply subscribe to external actors’ content, their node push that content to the relevant other nodes and eventually makes it available to all the connected actors. That selective node-based distribution creates, inside the global network, a more or less extended local aggregation that is called the fediverse.

If this arose your interest, there are various public GNU social nodes for you to try, I’m on LoadAverage!

A brief technical history

At present, there are three super-networks in the federated social communication space, and they run on different protocols. They are known as The Fediverse, The Federation, and The ActivityWeb. While these super-networks function in similar ways and even have similar aims, they each come from a different history of development, and by extension, a different stack. The overlapping series of networks can be referred to in macro as The Free Network.

The Fediverse has historically operated as a micro-blogging network and uses the OStatus protocol for servers to communicate with one another. It was introduced around 2010 and pulls together different platforms, namely: GNU social (and the fork postActiv), Friendica, Hubzilla, and Pleroma. Mastodon used to support but has recently dropped. Pleroma won’t maintain anymore and may drop in the future.

The Federation has begun in 2010 with servers that only ran Diaspora. Structurally, Diaspora functions more like Facebook: it supports long-form content rather than short-form, and every post has a designated thread for comments. It also supports private statuses and an inbox for direct messages. In all, it pulls together different platforms, namely: Diaspora, Friendica, and Hubzilla.

The ActivityWeb was introduced with ActivityPub around 2018, based on Pump.io’s ActivityPump protocol, it pulls together different platforms, namely: Pump.io, Mastodon, Pleroma, Pixelfed, and Nextcloud. GNU social support for ActivityPub is in the works and is expected to be finished in the summer of 2019.

In time, every platform in The Free Network will likely be supporting ActivityPub and therefore these distinct super-networks will fold into one federated super-network containing everybody and maximizing interoperability between all the different systems. When they fold into one, we will call it fediverse because it all started with fediverse and subjectively sounds better and is easier and faster to say. On the other hand, in Portuguese, to diminish confusion with Faits Divers (fé-divér), “Rede Livre” might be a better option. OStatus shouldn’t be discarded though as it maximizes the compatibility between various different protocols. It would be nice to see ActivityPub being integrated into a newer version of OStatus, or at least have ActivityStreams 2 being adopted by OStatus.

If all those protocols allow the same why is ActivityPub being so widely adopted instead of the already existing ones?

It was essentially a matter of presentation. ActivityPub does solve some technical problems of the already existing alternatives. But, despite its problems and trade-offs (because it isn’t perfect either), “ActivityPub is to HTTP what HTTP was to TCP/IP” (in the words of Riley Taylor) whereas older protocols, like OStatus, were shared as a complicated (because it requires implementing various protocols - which is one of its advantages too as maximizes interoperability) solution to build a federated Twitter clone. This fact together with the simplicity claimed to be part of ActivityPub implementation led to its large and fast adoption.

Final remarks

Some of this publication’s content was adapted from Fliphodl’s ep. 1 on Social Media Alternatives Series, Sean Tilley’s Quick Guide to The Free Network, and “Riley Taylor’s post on why ActivityPub could be the future” (no longer available online). Even though their content has been heavily edited, that remains a fact and is still worth linking to (as I didn’t include all of their relevant content).

Various links in this post weren’t adapted and included as the three above mentioned, that’s because, in my opinion, there was no need to either update, add or filter parts of their content in any way. This post is meant to be a, reasonably self-contained, short sum up of what the fediverse is while providing you with various links to good resources containing further details and more comprehensive histories of this amazing world.