I consider myself a child of the internet, in that I discovered it towards the end of my childhood and spent most of my time there, during my formative years, instead of, you know, outside.
Since it began, the Internet has organically evolved as people found new ways to interact and share. And the tools and technologies gradually evolved to meet those needs. This was a direct result of people needing new ways to interact that weren’t possible before.
When the big social networks came, it felt amazing at the time. Despite my love for IRC, it felt somehow revolutionary to have centralization, to have everybody on the same app, talking together in an endless river of content and interactions. Borders and hierarchies didn’t matter.
But then the years passed, and more and more we started to see the cracks in the paint.
We started to see how harmful these giants could be and how having our interactions under the oversight of private corporations was having direct lasting consequences on societies throughout the world — and on people themselves.
We started to see how little the users of these platforms actually mattered to the people behind them, sometimes even actually harming or radicalizing them in the process through biased algorithms, targeted advertising, and filter bubbles, simply because hate drives more traffic than love.
New standards for new uses
When the winds started to shift, once again people on the internet sought new solutions that didn’t have the same issues. There were various experiments throughout the last decades to create decentralized social networks and protocols (such as diaspora*).
From those experiments, applications emerged that still live today, such as Mastodon.
After some time letting those third party standards evolve, a W3C working group was formed in 2018,the Social Web. Their goal was to unify protocols and ubiquitous language and make these sites officially part of the platform and part of a system, something open, distributed, and evolving — something that would put people first.
This working group came up with a couple of standards for various use cases, but the one we’ll take an interest in today is ActivityPub, itself built upon various past ideas.
Slowly and behind the scenes, while the big social networks kept growing, ActivityPub started being adopted by these distributed social networks on the fringe (including Mastodon), connecting more and more of them together.
This grew into a network of different applications capable of communicating and interacting with one another seamlessly. Today, we call that the Fediverse (for federated universe).
What even is the Fediverse?
While I’m an ardent proponent of the open and distributed nature of the Internet, it took me forever to actually investigate these solutions properly. Like a lot of people I can be reluctant to change until forced otherwise. And the more the big social networks grew, the more so did their value and attraction.
It became hard to leave Twitter or Reddit. People are regularly praised for taking breaks from it, because we collectively know that they aren’t entirely healthy.
It also didn’t help that the Fediverse is complex in nature, especially after years of working with monolithic apps. Every time I tried in the past, I failed to “get it” and instead abandoned my attempt.
“You can’t wrestle control of a walled garden out of its gardener’s hands”
While I left Facebook years ago, I only recently tried to leave Twitter and Reddit as concerns over their management grew and became more apparent.
It really made me understand that there was no coming back, that you can’t wrestle control of a walled garden out of its gardener’s hands, and that these platforms were never going back to the friendly neighborhood they were when first gaining traction.
So once again I started to look into the Fediverse and, now that I understand it more, I’m amazed by it. What really helped me grasp how it works was to compare it to similar technologies before the social network era, for example email.
Communication by email happens across millions of servers around the world, and people use emails through a wide variety of clients with differing capabilities. You can write an email in Apple Mail, send it through Gmail’s server to someone on a Hotmail server somewhere, and they’ll read it in Microsoft Outlook.
The interface is separate from the server, which is separate from the content.
The Fediverse works the same way: I can view a given thread from a French server running Lemmy (a Reddit-like news aggregate and forum) while someone somewhere will comment on it from Mastodon from a server dedicated to technology (for example).
It’s like if you could tweet a comment on a Reddit thread, or see Tiktok videos on Youtube. It’s a hard paradigm to readapt yourself to since we’ve been conditioned over the years to think of content as being intrinsic to the platforms. You don’t read a thread, you read a Reddit thread, and if you want Twitter to see it, you post a link or a replica of it.
But then they become two separate pieces of content with two different comment chains; this isn’t the case in the Fediverse. Content exists outside of platforms, just like emails exist virtually. You can delete an email from a server, but the person at the other end still has it because the email is distributed data, not the locally cached copy.
Joining the Fediverse
With all that in mind, it can be extremely difficult to join the Fediverse, not because of a high barrier of entry. In fact the opposite is true! There are thousands of entries with no barriers and no instructions on which to pass through.
As mentioned before, using the Fediverse means making a choice on several facets of it depending on what suits you best and I feel that it helps to process those separately.
While this is the part that most people struggle with, it’s important to remember that because of the very nature of the Fediverse, these choices have little actual impact. You can change software and clients and such and still access the same content. So don’t stress about it too much!
Step 1 - Style is everything
How do you want to consume content? Are you more of a fan of microblogging like Twitter? Do you prefer networking between communities like on Reddit? Or just a stream of images like on Instagram with no text?
Several Fediverse applications answer to different needs and design patterns, so before you pick one you need to know what you’re looking for. In my case, I’ve always been nostalgic of the forum era which is why Reddit spoke to me, so I settled on news aggregation and forum.
Step 2 - Pick an app
You need to pick an application that fits your style. The application layer is the backbone that makes things run; it’s the logic that is going to sync content in and out of the Fediverse.
For my use case, there were several options available. The main ones being hyped at the moment are Lemmy and KBin. There are others than these two but you can’t go wrong picking either since both are solid for this use case. For Instagram, check out pixelfed. For Twitter, check out Mastodon.
Step 3 - Join a server — or run your own!
Once you have your application picked, you need to pick a server (or instance). This is a node within the larger Fediverse, with its own rules and principles. When you create an account on an instance, you agree to abide by its rules.
When interacting with local content, you’ll answer to the admins of the instance. When the content was generated from another server (or application), the rules of those communities also take effect.
Ultimately, all instances talk to one another, so don’t worry. You will see the same content regardless of where you sign up — unless your chosen instance chooses to defederate (or unlink) from another one (more on that below).
You can even have multiple accounts on multiple instances. And it’s specifically recommended to avoid the instances with the most users since they’ll reach capacity sooner.
One of the main benefits of the Fediverse is its distributed nature: the load is shared amongst all instances so it’s better to pick a cool little instance than to join the Big One of the moment. For Lemmy, for example, you can use Lemmyverse to browse and filter instances.
Step 4 - All Hail Hypnotoad
Once you’ve found an instance that seems to match you and you’ve created an account, the time has come to subscribe to (or follow) the content you’d like to see. Just like viewing your regular social network timeline through different prisms, Fediverse content can be explored in gradually broader ways:
- Subscribed content — communities (magazines) you’ve joined, the people you’ve followed, etc. This is the content you’ve explicitly vetted and that will constitute your home.
- Local content — content of the instance you’ve registered on. If you’ve picked a French instance, for example, you’ll find other French communities. Or maybe you’ve joined a generic instance and Local is just a random assortment of things.
- Federated content — content of other instances linked to yours. Each instance admin can decide to subscribe or block other instances. This is also something you can do at an individual level.
- Global content — the firehose. This is, you guessed it, EVERYTHING across the Fediverse.
Keep in mind that while these distinctions and different layers can seem redundant, the standard was thought out to fill the various needs of people using social networks very differently.
It’s possible that you’ll spend your time browsing a few of these facets — or only one. I know, for example, that I’ve always been a fan of Reddit’s All view so I’m not that interested in local/federated content because I’m here for randomness more than curation.
Now, because everything is distributed, you might have multiple communities that fill the same niche but on different instances. For example, both @[email protected] and @[email protected] are about the same topic, so which would you subscribe to?
My answer is both!
It doesn’t matter; they’ll pop in your feed regardless, and over time some will merge with others, or not; it’s okay! Content is content, and as long as it’s not shielded from the rest (actively blocked), there is no downside to having multiple communities around the same topics.
In fact, if you look at Reddit, it was very much the case that many duplicate communities existed with different rules or languages.
You had /r/AmITheAsshole in English (a community for judgment in the court of public opinion), /r/suisjeletroudeballe in French, and /r/True_amitheasshole for people who felt the morals of the main one didn’t align with theirs.
The same is true for the Fediverse, but it becomes much easier to “group” communities by instance or ignore one altogether.
Step 5 - Apps, apps, and more apps
Finally, and optionally, you can pick a different client than your application’s default one. For example, if you’ve picked a Mastodon instance you can use Elk instead. Or if you want to check your Lemmy instance from Android you can use Jerboa and so on.
In fact, many former application developers are switching to support Lemmy due to the aggressive policies that have caused my recent emmigration. So there are many 3rd party clients popping up for desktop and mobile with slightly different interfaces or power tools built in.
Interactions within the Fediverse
Content in the Fediverse is global and platform agnostic. You need a way to refer to things in a canonical agnostic way as well. On the Fediverse, you’ll often see identifiers constructed like @topic@instance (or !topic@instance they’re the same), which is very similar to the way email addresses are constructed.
So, for example, @[email protected] points to the technology community on the lemmy.ml instance. For the actual content, it gets trickier since you rarely interact with the canonical version of a thread/message but instead with its replica on your home instance.
Let’s take an example of a thread posted on the lemmy.ml instance. I can view it in its original context as a post directly on that instance, where it’ll be presented to me as read-only since I have no account there. Or I can view it in my own instance where I can comment and upvote and stuff.
All I need to do is copy paste its URL in my instance’s search and I’ll see the equivalent thread there. But I could also paste the link into kbin.social (a completely different application!) and find it there.
All three are the same piece of content, with the same comments and upvotes, seen through three different lenses and all synced together in almost real time. And I could interact with that content from all three standpoints without other users having to know where I commented from.
That’s why I say: ultimately, it’s not worth it to stress out about where you land or what app you use.
While not all of the applications support import/export or instance migration yet (functionality that allows you to move your account), ultimately most will and there is no wrong choice that can be made. The content will always be there, ready to access no matter how and when you decide to.
Growing pains of the Fediverse
Of course, because of the nature of how the Fediverse works, it relies even more on open-source efforts than your standard social network. If you’re migrating (or at least testing the waters), don’t discourage yourself too much if everything is not yet at feature parity.
You’ll need to give time for people writing this software to get there. Don’t forget, through the beauty of open source; you can contribute directly yourself. For example, if you use kbin as your application layer, well… it’s written in Laravel! So your favorite feature is only a pull request away.
Similarly, while the distributed nature of the Fediverse means each server has less load to handle, it also means you need a lot of smaller servers, and people to admin those, and keep them online, and such.
Once again, this work is mostly done for free unless they have donations setup. This is why I stressed out it’s important to not flock to the biggest instances, because you’ll only hurt the platform as a whole.
Basically, with a whole new paradigm of social media, we need to, once again, reason about the best ways to make it work. Because advertising is not going to be the financial source of this era of social networks, we need new solutions.
Another thing that needs to be thought out is moderation, one of the big wounds that weakened the last era of social networks. This is where I think the model of “together but separate” that powers the Fediverse will be its saving grace.
With the ability for instances to follow and block each other, it’ll be easier for bad actors to be concentrated into instances where the rules fit them, instead of mingling with everybody else by default.
Of course, nothing prevents bad actors from causing havoc on other instances, but as the tools evolve to account for federation, so will modtools. It’s likely that, eventually, some of the moderation will also be federated.
This means a bad actor coming from an instance to spam would get banned and that ban would be preemptively passed along to other instances for them to decide whether to also ban. There are already initiatives to list bad instances so that when more official tools come in, it’s easier to shield particular communities from others.
I don’t have the solution myself to the problem of internet toxicity, of course, but I’m counting on global open-source efforts and W3C standards more than profit-driven closed-garden approaches.
Each time someone migrates to the Fediverse, they bring traffic and visibility that helps its growth. And while growth is not an end goal in itself, it’s a necessary step to overtake the current social networks.
Another big deciding factor in the future of ActivityPub is how it handles growth and more profit-oriented actors. Meta, for example, has recently released an ActivityPub social network called Threads.
It’s going to be interesting to see if they bastardize the concept or hide the federation aspect away. There have already been some voices calling to isolate them.
The mood might also radically change since the current audience of the Fediverse is small enough that people are all nice to each other. It’ll be a test to see how big growth spurts affect the communities and how the tools evolve in reaction.
Who is in your community?
So come on! Join the Fediverse; give it a try. You don’t have to quit the other social networks at once but you can get familiarized already. Look around. It does no harm.
Maybe improve something if you know how to code. There are applications for every type of content and a lot of websites in place to help you discover and curate content.
I’ll let you find your new home. Maybe start with fediverse.party which documents apps and tools around the fediverse and what niche they fill. It’s far from being the only resource so it’s hard to link to the One Best Page™.
Ultimately, like all newish technologies, the UX and user-friendliness will come gradually. But I hope I piqued your interest and that I’ll see you around!