The many branches of the Fediverse
As more and more people are asking me about Mastodon I felt a need for a picture to point at, showcasing how the software known as Mastodon fits into the much larger concept of the Fediverse. I made this infographic to help myself and others explain the many different use-cases and benefits of different services that can exchange information.
I am well aware this still doesn't cover all available tools. The infographic is a simplification, as most models are. Given that new tools can be made available regularly it would be an insurmountable task to pursue a complete mapping. Hopefully this visual is enough to illustrate the amazing variety of services within the Fediverse, and will spark curiosity to explore further.
You can download the diagram in PNG format or as a PDF.
Federated? What does that mean?
Fediverse is shorthand for federated universe. But what does federated really mean in this context? It's important to remember that the vast majority of applications in my picture can be installed thousands of times over and each of these instances, or servers, be of many different sizes. Each of these have their own rules and ownership, and make up their own corner of the Fediverse. I am fond of these explanations provided by Bonfire:
- A federated social network is a system that is decentralised, developed and operated by distinct providers (something like email but for social networks). It consists of multiple social apps and websites, where users of each site can communicate with users of any of the other compatible sites.
- An application or website participating in a federated social network is interoperable with the other sites (known as instances) and federates (fetching and especially pushing data) with them based on their users interactions. Communication among the social websites is conducted through social networking protocols, like ActivityPub.
- Advantages of a federated network:
- Robust and resilient
- Scales horizontally
- Private data stays on each user’s home instance
- Each instance is responsible for its content (moderation of discussions, etc)
- Standards-based but also extensible
- Open
The Fediverse = ActivityPub
It makes sense to view the Fediverse as encompassing all those tools and software that make use of the ActivityPub protocol. This helps communicate the understanding that all applications within the Fediverse can talk to each other.
There are other protocols for federated social networks, as the infographic shows, and sometimes ActivityPub-based tools are able to exchange information with these tools. I would recommend that tools that themselves exist only on protocols other than ActivityPub should not be seen as part of The Fediverse.
Note however that the idea of The Fediverse is in flux and it hasn't always been this way with ActivityPub as the core, and it won't necessarily be this way for all future:
Questions and answers
What, if anything, is the advantage of having accounts on multiple (micro)blog sites like Mastodon? I get the purpose of the separate video, music and photo ones, but many of these look at first glance like alternatives to Mastodon. Is that the case and it’s just user’s choice/where someone feels most comfortable?
Yes I would say it's more often a user preference. They have different interfaces, features and integrations. I understand Friendica for example has a Twitter add-on, and supports the diaspora protocol. Different features can also relate to character count, or the ability to use rich formatting. Some people may want several accounts for redundancy, or for talking about completely different topics, e.g. one for golf and one for knitting.
Why is Nextcloud in the diagram?
Nextcloud announced the alpha version of ActivityPub social features in 2018. More recently they also announced this: Trust in Musk or go federated with Nextcloud Social!
What this means is that through Nextcloud Social, "users can share their thoughts on an activity feed and subscribe to the feeds of others. The activity on Social shows on the users’ profile page and users can easily share photos and other documents from within other parts of Nextcloud." There is a plugin for this but it will be a default part of Nextcloud by the end of 2022.
How is Wordpress or Drupal part of the Fediverse?
You can use a plugin to implement the ActivityPub protocol for a Wordpress blog. Same with Drupal. Readers will be able to follow blog posts on Mastodon and other federated platforms that support ActivityPub.
Why is Matrix shown in the diagram all by itself. Is it part of the Fediverse?
Matrix fits all the characteristics of a protocol for federated social networks: "It is decentralised, developed and operated by distinct providers (something like email but for social networks). It consists of multiple social apps and websites, where users of each site can communicate with users of any of the other compatible sites."
As Mastodon has grown in popularity and adoptance, many tend to think of the Fediverse as only those applications that are based on the ActivityPub protocol. Others argue that Matrix is a flavor of Fediverse software. I have gone back and forth a bit on this but have now labeled the trees outside the main tree as being outside the Fediverse. They are "other protocols for federated social networks".
One ActivityPub application already working on Matrix protocol support (very early on) is Socialhome. Socialhome today supports both ActivityPub and diaspora. Nextcloud and Drupal support Matrix integration via plugins.
As an example of a Matrix address: I am @axbom:xbm.se on Matrix.
Links to Fediverse software and services
Here is a complete list of the tools mentioned in the visual. The paid services are micro.blog and write.as, They both federate with the network, but are themselves not offered as open source software (some of the micro.blog mobile apps are). They are mentioned here to indicate that commercial and/or standalone software can also hook up to the Fediverse.
- Bonfire
- Bookwyrm
- Castopod
- Diaspora (not Fediverse/ActivityPub)
- Drupal (via plugins)
- Friendica
- Funkwhale
- GnuSocial
- Hubzilla
- kbin
- Lemmy
- Mastodon
- Matrix (not Fediverse/ActivityPub but a separate federated social network)
- Micro.blog (paid service that federates with ActivityPub)
- Misskey
- Mobilizon
- Nextcloud
- Owncast
- Peertube
- Pixelfed
- Pleroma
- Plume
- SocialHome
- Wordpress (via plugins)
- Write freely
- Write.as (hosted version of Write freely)
Applications not in the diagram
As mentioned, the diagram is far from an attempt at being complete. It's aimed primarily at being useful for communicating the concept and variety of the Fediverse. The following applications may or not make it into the diagram in the future, but they could be worth checking out for you.
- Akkoma (update Jan 23: this is the one I am myself using now, a fork of Pleroma)
- Firefish, previously Calckey - a fork of Misskey
- Gancio
- Gath.io – event management
- GoToSocial
- Honk
- Inventaire (books) - this keeps being mentioned to me but I'm hesitant as it has a centralized technical architecture. Even though yes, is has limited ActivityPub integration, people do not download Inventaire and create their own instances. In that sense it works more like the paid services I mention.
- Postmarks – social bookmarking
- Soapbox
- Streams
Protocols in the diagram
NOT Fediverse/ActivityPub but separate federated social networks:
- diaspora
- Matrix
- OStatus (was once the core protocol for the grouping of software that were referred to as The Fediverse.)
- XMPP - a protocol for chat that has been around a long time (some of you will remember Jabber) and would almost require its own diagram. Also see the ejabberd and prosody platforms built on XMPP. The applications Movim and Libervia support microblogging, and much more (like file sharing, photo albums, events), on XMPP.
- Zot
Protocols not in the diagram
These are also NOT Fediverse/ActivityPub compatible but separate federated social networks:
- AT - not launched yet
- pump.io - a general-purpose activity streams engine that can be used as a federated social networking protocol
- Scuttlebutt
- Solid - a specification that lets people store their data securely in decentralized data stores called Pods. Pods are like secure personal web servers for your data.
Further reading
My previous posts explaining Mastodon, both with links to even more learning resources.
Follow
Interested in following me in the Fediverse? Your best bet is to copy and paste my username into the search box on your home instance/server:
Changelog
-
Nov 2, 2022: version 1.0
-
Nov 3, 2022: version 1.1
- Moved Diaspora from the Networking circle and created two small trees for the diaspora and OStatus protocols.
- Added a branch for paid services, moving micro.blog and adding write.as.
- Added Wordpress to the Writing circle.
-
Nov 4, 2022: version 1.2
- Changed license to CC BY-SA (removed NC).
- Removed Plume (no longer in development).
- Moved Socialhome and connected it with the diaspora protocol.
- Added Drupal to the Writing circle.
- Added Castopod to the Multimedia circle.
- Added Matrix as a separate tree on its own protocol (Matrix).
- Redesigned the branch with paid services, making these less prominent. They are now only represented by their icons.
-
Nov 25, 2022: version 2.0
-
- Made the events circle larger and closer to Hubzilla and Friendica... Friendica is still outside that circle but the diagram is not intended as a perfect representation of functionality
-
- Added comma after "podcasting"
-
- Added XMPP as its own tree
-
- Added the Zot protocol as its own tree and made a line between the Zot tree and Hubzilla
-
- Moved GNUSocial further to the right and made a line from it to the OStatus protocol tree
-
- Added back Plume to the writing circle. While not still actively maintained it has not disappeared and people still use it
-
Jan 17, 2023: version 3.0
-
- New clarification that trees outside ActivityPub are "other protocols for federated social networks"
-
- The main ActivityPub tree has a more clear "The Fediverse" label
-
- New dotted line from Nextcloud to XMPP and Matrix
-
- New dotted line from Drupal, with plugins, to XMPP
Backlog
- ...
Image description of the diagram
I encourage using this description as ALT-text for the image when publishing it in other places.
A large tree grows from a green platform labeled “ActivityPub + more”. ActivityPub is a protocol for communicating between different applications in the Fediverse. The trunk of the tree is labeled The Fediverse, to indicate that all the applications within the tree crown are part of the The Fediverse.
The crown is made up of circles that intersect with each other.
Circle 1: Multimedia (streaming, video, photos, podcasting, images, files).
Apps: Downcast, PeerTube, Pixelfed, Castopod and Nextcloud.
Circe 2: Networking.
Apps: Friendica, Mastodon, Misskey, Pleroma, Diaspora, GnuSocial, Hubzilla, Socialhome, kbin and Lemmy.
Circle 3: Music.
Apps: Funkwhale.
Circle 4: Books.
Apps: Bookwyrm.
Circle 5: Writing.
Apps: Write Freely, Plume, Drupal (via plugins) and Wordpress (via plugins).
Circle 6: Events.
Apps: Mobilizon and Bonfire.
Growing out of the trunk is a separate branch labeled “Paid services”. Apps here are micro.blog and write.as.
Smaller trees around the main tree indicate other protocols for federated social networks.
Off to the right are 3 small trees, one rooted in diaspora protocol, one in the OStatus protocol, and one in the Zot protocol.
The two applications Hubzilla and Friendica connect with Diaspora and OStatus using dotted lines. Socialhome connects to Diaspora. GnuSocial connects to OStatus. Hubzilla connects to Zot.
Off to the left are two small trees, one with its roots in the Matrix protocol and the other with its roots in the XMPP protocol. Nexloud connect to XMPP and Matrix. Drupal connects to XMPP.
Webmentions
Comments
Foo Bar on November 22, 2022
The very same reasoning you apply to Matrix would be true for XMPP as well. Beyond that, XMPP is already used for much more than Chat in practice. Libervia is currently adding support for bridging XMPP with ActivityPub, which would allow Libervia users to follow people on Mastodon and vice-versa, building a direct link between the two protocols and further showcasing how they're actually the same kind of spirit, just different software and protocols. As such, XMPP should be considered a protocol of the Fediverse, just like Diaspora protocol or OStatus protocol.
Per Axbom on November 22, 2022
Absolutely no argument there. This is why "Add XMPP as its own tree" is written into the backlog at the bottom of the post. Thank you for adding to the reasoning and reflection around XMPP.