Circuits Of Imagination

What is the Fediverse

25 Jan 2024

By the time you are reading this you’ve probably already heard of “The Fediverse”, or at least Mastodon. At the time I am writing this post, the Fediverse is the fastest growing social media platform. At the same time, most people don’t know what the Fediverse is or what makes it different from Facebook, TikTok or X, formerly Twitter.

Lets start with what the Fediverse is. Wikipedia defines the Fediverse as:

The fediverse (a portmanteau of “federation” and “universe”) is an ensemble of federated (i.e. interconnected) servers that are used for web publishing […] and file hosting, but which, while independently hosted, can communicate with each other.

More commonly the Fediverse is defined as the set of applications (e.g. Mastodon or PeerTube) that can communicate using the ActivityPub protocol, the servers and groups that host the applications, and the users of those applications and the content they create. All of that together makes up the Fediverse. The key difference between the Fediverse and traditional social media sites like Facebook or YouTube is the addition of the ActivityPub protocol and independent servers into the mix. Anyone can setup a Mastodon server, and anyone can write a new application that uses the ActivityPub protocol, and that server or that application can, within reason, communicate with any other server or application in the Fediverse.

Decentralization

Let’s make that a little more concrete. The two most popular Fediverse applications are Mastodon for micro blogging and PeerTube for video sharing. Noc.social hosts a Mastodon instance and I have an account on that instance. I can follow other Mastodon users either on my home instance (noc.social in this case) or on other instance such as infosec.exchange. I can also follow a PeerTube account, like babbagebool because PeerTube also uses the ActivityPub protocol. A common, but imperfect, analogy is email. You can have an account on gmail.com and your friend can have an email account at hotmail.com and you can both still send and receive emails with each other.

Centralized vs. Decentralizes vs. Distributed

Facebook, X (aka Twitter) and YouTube are all centralized services. If I want to talk to or interact with any of my friends on Facebook, I need to have a Facebook account and log into Facebook. Same thing with YouTube, if I want to follow a channel or comment on a video on YouTube, I have to have a YouTube account. Cross posting content from Facebook to X is not an option.

Along the same line there is only one Facebook. The Facebook.com website is run by Meta. No one else can create another Facebook instance and even if they manage to create something that is Facebook like, they will never be allowed to interact with the real Facebook. Whereas in The Fediverse anyone can spin up a site that can interact with any other site in The Fediverse. Anyone can spin up a new Mastodon site, but no one will be able to spin up a new X. In fact there are even services out there that will help you spin up your own dedicated Mastodon instance. The official Mastodon documentation has a section on how to spin up your own instance.

Decentralization is the key difference between The Fediverse and traditional social media platforms and brings with it a number of fundamental differences in how you, as a user, might approach this decentralized world. Going forward I am going to focus mostly on Mastodon, but the discussion is applicable to the Fediverse in general.

Instances

When you sign up for a Facebook account the only option you have to so sign up on Facebook. Facebook lets you create an account and hosts your data for free and does that for billions of users costing Facebook billions of dollars a year. At the same time by signing up with Facebook you agree to have your data mined and shared with advertisers and affiliates; You also agree to have ads and content you never signed up for displayed in your feed; You also agree to abide by Facebook’s terms of service, and content moderation policies. If you don’t like that arrangement, your only option is to not sign up with Facebook.

When you sign up for a Mastodon account, you first have to pick the instance you want to sign up with. Once you’ve picked an instance you can start following users on other instances, and users on other instances can start following you and interacting with your content. So what are instances in the first place?

In the most general sense an instance is a website that adheres to the ActivityPub protocol. Most commonly an instance is taken to mean a website running one of the many Fediverse applications like PeerTube or Mastodon. So a Mastodon instance like mastodon.social is a website running a copy of the Mastodon software and can communicate with other in the Fediverse. Back to the email analogy think of an instance like an email provider, so Gmail and Yahoo would be different email instances.

Once you’ve picked an instance you start interacting with other users on the Fediverse. This means that if you don’t like the moderation policies on mastodon.social you can sign up on ohai.social and still follow any friends you have at mastodon.social.

Now lets talk about what happens when you post something on Mastodon. When you post a new Toot, think Tweet, on Mastodon, your instance stores your Toot in your “Outbox”. Anyone that follows your account can then request your Toots from your outbox. There is some technical fibble-fabble I am glossing over but the summary is your Mastodon instance will collect all the posts from everyone you follow and present them in your “Home” timeline. By default Mastodon will publish all of the Toots from all of the users on your instance to the “Local” timeline. If a user on your instance follows a user on another instance, Mastodon will collect the toots from all those other users in the “Federated” timeline. This means that your instance will publish the sum of the public toots from everyone that is followed by anyone on your instance.

To clarify lets say that I have an account on instance A, and you have an account on instance B and that I don’t follow your account. Unless someone on my instance (instance A) follows your account on B, your toots will never show up on my timeline. This also means that the Federated timeline on my instance A will be different than the Federated timeline on your instance B, because the users on my instance follow different accounts than the ones followed by the users if your instance.

Because there is no centralized server collecting all the posts from all the users in the Fediverse, there is no single global timeline in the Fediverse. Instead it all depends on who you follow and what the other users on your instance follow too. This might sound scary if you are an influencer looking for follower counts or reach, but is great if you are looking engagement and interaction. This is because mastodon instances self-select for specific audiences and niches, and you can target the niche you want by picking the right instance.

This same phenomenon applies to search. Because there is no central database storing all the content ever published on the Fediverse, you cannot search the entire Fediverse. Instead when you search for something on an instance, you will be limited to the content available and reachable from that instance.

Moderation and Acceptable Use

Each instance’s administrators are responsible for defining the instance’s acceptable use policy and enforcing that policy through moderation. This means that different instances will have different policies about what content is and isn’t allowed. For example some instances allow pornographic content, while some instances have very strict “no NSFW” content policies. The instance administrators and moderators are also responsible for enforcing the instance’s policy and taking action against offending users. There are a number of actions that can be taken against offending users, ranging from marking the account as sensitive alerting other users to potentially-harmful content all the way to suspending the account, effectively deleting the account and the content associated with it.

Because of the Federated nature of the Fediverse, a user Jane on instance A might follow or interact with another user Bill on instance B with a more lax content policy. This would cause the violating posts from Bill to show up on instance A’s federated timeline. In that case instance A’s moderators might take action against Bill, or against the entire B instance. The thing to keep in mind is that whatever enforcement action instance A’s admins take, it will only impact users on instance A. A third instance might take completely different moderation actions or no action at all.

This means users have the choice, and associated responsibility, to choose an instance whose usage guidelines aligns with their views and tastes.

An real-word example of large-scale moderation in the Fediverse is The Gabbening. For those that don’t know Gab is a social network focused on alt-right and neo-Nazi users who have been banned from other social media platforms, specifically Facebook, Twitter (Before Elon’s takeover) and YouTube. In 2019 Gab switched to a forked version of Mastodon allowing it to join The Fediverse. Most, and by most I mean the extreme vast majority of Fediverse sites proactively blocked Gab’s servers and blocked any instances that were found federating with Gab. This effectively protected vast swaths of the Fediverse from the content being generated by Gab’s users. The main differentiator is that these instances blocked Gab in response to their own moderation policies and users’ preferences instead of a single entity or instance holding power over the entire network.

Spam

As the Fediverse grows there will be a strong incentive by spammers to target Fediverse users, especially since the Fediverse is a distributed environment which means different instances will have different approaches and abilities to manage Spam. Centralized systems have a major advantage in combating Spam. Once a spammer has been identified on a centralized system, they can immediately be banned from the entire platform and their content removed, significantly raising the cost for spammers to reach users. The other side of that coin is that if a legitimate user is misidentified as a spammer, they might not have any options for reaching users or appealing the decision to ban them and remove their content.

In a decentralized system like the Fediverse, and instance may identify and block a spammer, whither it is a single users or a spamming instance. However, none of the other instances in the Fediverse are aware of the spammer and the spammer will continue to be able to reach users on those instances. Even if a spammer was known to all (or at least the majority) if instances on the Fediverse, it is trivial for a spammer to start a new instance repeating the whole cycle again. This is a very difficult problem to solve. People as old as I am will remember the hay-day of email spam, and in reality we never found a good system for combating spam on email. It wasn’t until the vast majority of email was controlled by a few centralized entities (i.e. Gmail, Hotmail and Yahoo) that significant gains against spammers were made. In fact today most email providers will automatically mark any message as Spam unless it originated from one of the major “known good” email providers.

Spam is still an evolving issue in the Fediverse. One major differentiator is the moderation tools available to instances admins are much more powerful than the moderation tools that email providers ever had, and moderating and blocking spam is a special case of over all content moderation.

Funding

The current economic model for mainstream social media platforms is simple: We provide them with data and attention which they sell to advertisers for money, and in return we get to use their platforms for free. As the old saying goes “If you aren’t paying for the product, you are the product”. This model incentivises social media platforms to collect as much data as possible about their users, while providing content that will keep them on the platform for the longest amount of time, regardless of if that is the content they really want to see or not, and stuff as many ads as possible into their feed. In other words the platforms’ interests aren’t always aligned with its users’ best interests.

In many ways the Fediverse is a reaction to the impact of the this model on social media users and society at large. However, at the end of the day someone has to pay for the service. Bandwidth, server space, administrator and moderator time, they all cost real money. Almost all Mastodon instances allow free signup and are run on a volunteer basis, however this can only last so long. As instances grow it will be impossible for volunteers to provide the resources needed to maintain their instances without some form of funding.

The Fediverse’s funding model is still in flux. If we as users want to keep the incentives of the Fediverse operators aligned with our interest, we need to fund the platforms. Most instances accept donations and setting up a recurring donation to your instance admin (even if it is as low as $1) is common practice by users. If users don’t provide the means to fund instances, the instances will either be limited in their growth and unstable, or instance admins will have to find alternative funding sources. Advertising is one option, but hasn’t gained traction yet because most users joined the Fediverse to escape that very economic model and the incentives it generates. Another model that might evolve is for organizations to setup and manage instances for their members, similar to how most corporate email works today. All this means is that early users and adopters will have an outsized impact on the Fediverse’s economic model and future evolution, if any.

So What?

At the end of all of this the Fediverse is kind of like Facebook, YouTube and Twitter, except without global reach; possibly a bunch of Spam; and you might have to pay for it! Why would you ever want to use the Fediverse? The answer is about choice and interoperability.

If you don’t like Meta’s role in the genocide in Myanmar or silencing pro-Palestinian voices on its platforms, your two options are to either not interact with any of the content on Facebook and Instagram, or continue to use, and therefore fund, Meta and its products. Maybe you are tired of the ever growing number of ads on YouTube videos or you aren’t happy with how things are going at Twitter/X recently? Well your two choices are to either not interact with any of the users or content on those platforms, or just accept things and move on. With the Fediverse, you can move around.

If you don’t like your instance’s moderation policies you can just migrate your account, without having to lose all your followers and friends, to a new instance. If an instance you are on introduces advertising to raise money and you are not comfortable with that arrangement, you can just switch to another instance that uses a different funding model. The word “just” usually points to something fishy. Moving to a new instance can be cumbersome, and the statement I made also assumes that an instance that meets your needs exists. At the same time moving instances is baked into Mastodon and almost every other Fediverse application. At the extreme you can even host your own instance and run it the way you choose. It’s not easy but it is possible. Contrast that with Instagram or TikTok and it’s easy to see that the Fediverse does offer you, the user and content creator, more options than traditional social media ever will.

That choice extends far beyond just instance policies all the way to how you create and view content. Want to post a long-form video for your Instagram followers? Good luck! Unless it is a live feed your video cannot exceed 90 minutes (in 2023). Since different apps in the Fediverse share the same protocol you can cross-post content from your PeerTube account onto your Mastodon or Pixelfed account, which would be kind of like being able to cross post content from your YouTube account to your Instagram account.

How you consume content comes into play as well. There is only one TikTok app and if you have a TikTok account your only option for watching videos is to do it through the TikTok app. Because every Mastodon instance uses the same well-known protocol, anyone can write a Mastodon app that will work with any Mastodon instance. There is an official Mastodon app, but if you don’t like it there are a bunch of other Mastodon apps with different features and designs.

Going back to the incentive structure, traditional social media’s incentive is to show you content that is most likely to keep you on the platform for the longest amount of time. In practice traditional social media sites use machine learning and engagement measurements from other users to decide what posts show up on your timeline and in what order. This focus on engagement and profits has had some well documented negative effects including spreading misinformation and mental health issues.

Things on the Fediverse are different. By default you are given a chronological timeline, which is just a fancy way of saying you see the latest posts at the top of your feed and subsequent posts are ordered by time. A chronological feed might not be the best option for users, but here again you have a choice. Right now a chronological timeline is the only officially supported timeline, but you can chose a client that uses a different algorithm. There is active discussion in the community on the best ways to allow users to use alternative feed algorithms, and let users customize the algorithms for their own needs and wants.

The Fediverse brings options and control back to the users. This also means that you as a user have the responsibility to chose what is best for you. If you don’t want to use the official Mastodon client that is fine, but it also means that when you install different client you need to make sure you don’t end up handing your username and password over to a bunch of crooks.

The future direction of the Fediverse, and whether it will exist at all or not, will depend on the collective direction users, content creators, and instance admins take. I’ll leave the decision of whether that is better than the direction social media has taken so far up to you.