rnd's website logothe fediverse

This document is still a work in progress. I wrote it rather quickly as news of Elon Musk buying Twitter spread, and so I probably missed some important stuff regarding the fediverse in general and Mastodon in particular... Feel free to pester me about it on @rnd@toot.cat.

introduction

You're probably familiar with the common criticisms of popular social media services -- they expose people's information to advertisers and governments, their huge size makes them impossible to moderate well (often leading to both under-moderation and over-moderation), their algorithms are tuned to maximize engagement even if this means exposing people to awful content or making it harder to actually connect with friends...

Some have even called for a return to the simpler "Small Internet" of independent and self-hosted home pages, forums and blogs (exemplified by services like Neocities) or go even further and create minimalist protocols, such as Gemini.

I'm not going to rehash all those criticisms or propose esoteric solutions that might not suit a lot of people. Instead, I'll tell everyone about an alternative that solves a lot of the problems with modern social media and harkens back to the independence of the old web while still being accessible and usable in the 2020s.

The fediverse is the name given to a group of decentralized services that are all compatible with each other. You've perhaps heard of Mastodon, the "Twitter alternative" that keeps popping up in the news every year and a half. But there's more to the fediverse than just Mastodon, and each of the different programs in it can serve different needs:

  • Mastodon, Pleroma and Misskey are microblogging platforms. They're most similar to Twitter, but both allow for way larger posts.

  • Hubzilla and Friendica are more similar to Facebook in their user interfaces and functionality.

  • Pixelfed is positioned as a media sharing service, often compared to Instagram.

  • Funkwhale is an audio-sharing service for musicians.

  • PeerTube is a video uploading and streaming service, which uses WebTorrent to enable P2P video sharing among viewers (therefore reducing the bandwidth load on the server, otherwise a big obstacle for independent video services).

All of these can communicate with each other using a protocol called ActivityPub. What this means is that people who use one of these services can follow users and read, like, share and respond to posts on any other server. (A common analogy is e-mail: people who use GMail can send and receive mail from those who use Yahoo Mail, or Hotmail, or any of the thousands of e-mail services around the world.)

This works even if the services are different. For example, if you use Mastodon or Pleroma, you can follow a PeerTube channel and get notifications on new videos. And if you write a response to a post containing such a video, it will turn into a comment on the video's page!

finding an instance

As a decentralized network, the Fediverse consists of hundreds of independently-run servers, or instances. To sign up for Mastodon, or Pleroma, or any other service, you need to find an instance that runs it.

If you want to sign up on Mastodon specifically, you can use this list of communities or instances.social.

A good list of Misskey instances is available on this page.

For a website describing instances of all kinds, fediverse.to seems to be helpful.

Each instance has its own set of rules and moderation policy -- different things may be allowed or banned depending on what country the servers are hosted in and what kind of community the administrator is trying to create.

A lot of instances have strict rules against hate speech, homo/transphobic content, etc. Others have a more relaxed "free speech" attitude, only forbidding content that is illegal to host. The latter often find themselves host to users who use their free speech to harass and bully users of the former (especially minorities of different kinds), which leads to instance-wide restrictions and blocks from the former.

Having said that, if you find that a user you want to follow is instance-blocked, the best option is to ask your admin to remove the block or change it to a "silence". Unlike on mainstream social media, the admins and moderators are actual people who can be talked to.

If an instance has open registration, then joining it will be as easy as signing up for a new account. Some instances may require you "request an invite", which means the registration will be approved by an admin. Some require invites to be given by other members of the instance.

guide to mastodon

Since Mastodon is the most popular service (and one that fits most use cases) (and the one I personally use), I'll describe how to work with it specifically.

The default layout shows you a single timeline in the center, a search bar, a profile view and a "compose" box in the left, and links to different timelines in the right.

Default Mastodon layout

This image is taken from the instance I'm on, cybre.space. It has some slight differences from a standard Mastodon instance. The floppy drive icons ("florps") would normally be stars, and the length limit of 1024 characters per post is more likely to be 500 or 1000 instead.

timelines

  • The "Home" timeline shows the feed from every user you follow.

  • The "Notifications" timeline displays responses to your posts, as well as notifies you whenever someone "favorite"s or boosts your posts or follows you.

  • The "Local" timeline shows all posts from your instance's users.

  • The "Federated" timeline shows all posts visible to your instance. It's an extremely fast timeline, often full of all sorts of posts and images from all over the fediverse in different languages.

Other timelines are more self-explanatory: DMs, Favorites and Bookmarks list your direct messages, favorited and bookmarked posts respectively, "Lists" function like lists on Twitter (with the added rule that you need to follow a user to add them on the list), and the "Profile directory", if it is enabled, will show you a list of local users who have agreed to be displayed in it. (New users in particular are advised to check it out.)

search

The "search" bar is somewhat different from what you'd expect: most instances do not allow full-text search across other people's posts. (On Twitter, it is sometimes common for people or bots to search for words or people's names and start unwanted conversations with those in the search results.) It can still search among the posts you've made, or labeled as favorite, but it also has other important uses:

  • Hashtags are publicly searchable, and also can be "pinned" in the advanced interface to let users keep track of posts with them. This makes them a useful tool, more so than on Twitter, so if you're making a public post about something, it's worth hashtagging them appropriately.

  • If you search for someone's username (e.g. @devurandom@cybre.space) or a URL to their profile page (e.g. https://cybre.space/@devurandom), your instance will look that user up and let you interact with them.

  • If you search for a URL to a post (e.g. https://cybre.space/@devurandom/108211411872331908), your instance will look that post up and let you interact with it. This is especially useful, since just opening the link in a web browser will show you that instance's view of the post, not your instance's.

Speaking of hashtags, a good one to check out is #introductions. Both new and seasoned users of the fediverse routinely post introductory posts about themselves using it.

Your instance may have a "trends" display. Unlike Twitter, it simply displays hashtags that are popular on that instance at the moment. There is no secret algorithm determining which hashtags get on or not (except for server administrators, who may personally block certain hashtags from appearing on the list).

posting

Making new posts (often called "toots" on Mastodon) is relatively simple, but compared to regular social networks like Twitter and Facebook, there are two important options: content warnings and privacy settings.

Content warnings are used to hide the post's contents behind a warning text. On Mastodon, the accepted use of content warnings goes a bit further than elsewhere: some people CW posts containing NSFW content, some put them on posts about politics or COVID-19, others add warnings for eye contact (sometimes abbreviated as ec) or food, and some just use them for jokes.

When a post has a content warning, by default all its readers see is the text of that warning and a button that says "show more". Clicking that button reveals the contents of the post (and changes the button to "show less" in case you want to hide the contents again).

Privacy settings let you control which users get to see the post.

  • The initial setting is "Public" (globe icon), meaning the post is shown to your followers as well as on your profile and in the local and federated timelines.

  • "Unlisted" (unlocked padlock icon) means your post is hidden from the local and federated timelines, but is still visible on your profile, available to everyone via its URL and can be freely boosted by your followers.

  • "Private" or "Followers-only" (locked padlock icon) is close to the "Protect your account" setting on Twitter: your posts are hidden from everyone but your followers and can't be boosted or seen via URL.

  • "Direct" or "Conversation" (mail envelope icon) is the most strict option: the only people who can see or interact with your post are the people directly mentioned by their @username in it. This is the equivalent of writing someone a DM.

The posts tagged as "direct" are not encrypted. The administrators of the instance you're on (as well as the instance of the person you're talking to) can read them if they manually open their server's database. (To be fair, the same is true on Twitter as well.)

If you want to communicate privately, you should use one of the many end-to-end-encrypted options instead: Jabber/XMPP (with OMEMO), Delta Chat, Signal, Matrix (with encrypted chats), or even e-mail (with PGP).

In your preferences, you can choose which of these settings should be your default as well as lock your account -- this also resembles Twitter's "protect your account" setting in that it makes all attempts to follow you require your approval.

Unlike Twitter's "protect your account" setting, it doesn't force you to only make private posts or restrict non-followers from seeing your responses. Since privacy levels can be changed for every post, having a locked Mastodon account doesn't prevent you from interacting with people the way having a protected Twitter account does.

preferences

Speaking of preferences, Mastodon features quite a few, but here's the most notable ones:

  • Profile -> Appearance -> Profile metadata: you can set up to four or more fields on your profile page. No need to write your pronouns in the "location" field. If one of the items is a link to a web page, it's displayed as a link, and if that page links back to you using a special tag, it is displayed in lovely green with a checkmark, to verify that this is actually your page.

  • Preferences -> Appearance -> Enable advanced web interface: this option turns Mastodon's interface into a more TweetDeck-like layout, in which multiple timelines can be displayed at once in columns.

  • Preferences -> Others -> Opt-out of search engine indexing: tells Google, Bing, DuckDuckGo and other search engines that you would rather not see your profile page and your statuses in search results.

  • Preferences -> Others -> Hide your network: hides the "following" and "followers" lists from everyone else.

  • Preferences -> Others -> Filter languages: makes it so that only posts written in specific languages are visible on your "local" and "federated" timelines. If all checkboxes are disabled, no filtering is done. (As stated before, the federated timeline especially can go extremely fast, so filtering it to posts in languages you know may help.)

advanced layout

If you enable the "advanced web interface", the Mastodon website's layout will change into a multi-column setup, somewhat reminiscent of TweetDeck.

Advanced Mastodon layout

In this layout, the home and notifications timelines are displayed in columns, and additional timelines for lists, hashtags, DMs, bookmarks, favorited posts, etc. can be pinned using the settings button in the top right of the column.

The last column -- the one that, by default, displays a series of menu items -- is "dynamic". When you click on a post, profile, hashtag, etc., it will be opened in that column. All the other columns are "static" and will always display their timeline.

extra apps and services

While there are official Mastodon apps for both iOS and Android, they are liked by few, since these are written with an expectation that the user will sign up on mastodon.social or another major instance (and if you're seeking decentralization, you probably don't want that).

The link above has a large list of unofficial apps as well, but here are the ones I've seen recommended most often:

For the web, Pinafore is the best option. It's an amazingly quick and functional web app, usable on phones, tablets and desktops. If you want to replicate Twitter's look as closely as possible, try out halcyon.social. If you have an extremely limited web browser, you might want to try Brutaldon.

If you want to keep your Twitter and Mastodon accounts in sync, you can use this cross-poster app. It works both ways and can be customized to function the way you need.

other useful guides

Follow me on Mastodon This page made with Vim Best viewed in Firefox