A non-computer-person’s guide to how Mastodon instances work
Maybe you’re antsy about the news about Elliott Management trying to force out Jack Dorsey, or perhaps your curiosity is piqued because you see a bunch of your friends talking about joining, or maybe you just want to check out a relatively new corner of the Web. So what is Mastodon? Specifically, what does it mean when it talks about signing up for an instance rather than for Mastodon itself?
Mastodon is similar to Twitter. It is a microblogging service where people send short messages and images to their followers, and it has many of the same features as Twitter. However, the main difference is that while Twitter is centralized, with all interactions taking place on a single server controlled by one company, Mastodon is decentralized. It is a collection of many instances that communicate with each other to form a wider network.
Each instance is independently run by its owner and sets its own policies for membership, content and moderation. Some instances, like mastodon.social and mastodon.xyz, are general-purpose hubs that anyone can join. Other instances have a specific topic focus, are intended for like-minded people, or are for people who speak a specific language. An instance can be as large as tens of thousands of people, or as small as one person. JoinMastodon.org and instances.social each have a list of active instances that can be filtered by size, language and interest.
If you already know who you want to follow, find where those people are and join one of the instances they’re on, or ask one of them for an invitation link. If you want to jump in fresh and start your following list from scratch, smaller instances are better for discovery: it’s easier to view the public timelines and find new people you want to follow. However, at the end of the day, if you’re still not sure where you want to go, or you don’t particularly care as long as you can reach as many people as possible (see the section below on federation), big general-purpose instances are your best bet.
Communicating across instances
Even if you want to talk to many people spread across many instances, you only need one account on one instance. Think of it like email: with a Gmail account, you can send mail to other Gmail users, but you can also use it to send mail to people with Hotmail accounts, Comcast accounts, work-provided email accounts, and so forth. You don’t need to sign up with each email provider individually.
A person on one instance can follow and communicate with someone else on another instance by including the second person’s instance address in their username. For example, I am @jimpjorps on the instance radical.town. If I want to talk with @piffo55 who is also on radical.town, I don’t need to do anything special when tagging them in a post. If I want to tag @moonkissbaby on the instance mstdn.io into a post, I need to write the full username @firstname.lastname@example.org so the post can be properly routed between instances, similar to an email address.
If you’re looking for someone but aren’t sure what instance they’re on, the search functionality is able to comb all the servers connected to the one you’re on for results.
What instances determine
The instance you sign up for determines:
- the second part of your full username, the way that people from other instances will find you and communicate with you
- the rules you will have to follow while posting
- the people who administer the server and moderate your posts
- the posts you will see in your local timeline (all the posts from members of your instance)
- the posts you will see in your federated timeline (the posts from the members of all the other instances that your instance is communicating with)
- which other instances you can directly communicate with
The last two aspects determined by your instance deal with federation, the way that individual Mastodon instances communicate and share posts with each other. Wrapping your mind around the concept is probably the most complicated hurdle for understanding how the Mastodon network works.
Instances are not automatically visible to every other instance. Two instances will only communicate with each other if there is a connection between a local user and a user on the other instance.
For example, when a person on instance A follows a person on instance B, instances A and B form a federation and begin communicating with each other. Posts made on instance B will now appear on the federated timeline of all the users on instance A. (Users can individually remove content from specific instances from their federated timelines if they wish.) Larger instances will have a busier federated timeline because of this.
If a user on instance B now follows a person on instance C, C joins the federation with A and B. Every instance already in the federation becomes aware of new instances that form a connection with it.
Since different instances have different rules and standards, instance administrators can choose to reject federation with other instances to preserve the atmosphere of their community, prevent harassment, or block the dissemination of illegal or offensive content. The choices that individual servers make do not affect the rest of the servers in the federation.
Continuing the example, if instance C hosts content that the administrator of instance A does not want to be associated with, they can block instance C. This prevents people on instance A from communicating with people on instance C and vice-versa. All connections between people on the two instances are severed. Posts from instance C users will not appear in instance A’s federated timeline. However, users on instance B are not affected. They can still communicate with people on both instances.
Because of this, it is important to choose an instance that aligns with your views and is not likely to block communication with (or be blocked by) the instances that your friends or colleagues are on. Instances generally summarize their policies and viewpoints on the sign-up page, and most have a list of servers they do not communicate with, so you can get an idea of the kind of places they are before you decide on the one you wish to join.
If you want to change instances
You may have already signed up for an instance and want to move to a different one. In Settings > Account > Account Settings, you can redirect your old account to your new one, which automatically moves all your followers and flags your old account as inactive with a redirect to your new one. Your posts will remain on the old instance, however, and you have to manually transfer the list of accounts you’re following and your block/mute lists using Settings > Import and Export.
One privacy concern to keep in mind is that each instance’s administrator can see all the the posts made by its members — even direct messages and posts set as “private”. If you do not feel comfortable with allowing anyone else to see all of your posts, you may wish to pay for the hosting fees or the hardware to set up your own personal instance.
Since they’re usually hobbyists and amateurs rather than professionals, administrators of small instances can sometimes disappear for long periods of time, struggle to fix technical problems and downtime, or get sick of being in charge of an instance. Unless you already know the administrator well or are willing to jump to another instance, you might want to stick with a larger instance when you’re first getting started so that you avoid these possible issues.
- If you don’t like the default web client or find it disorienting, there are many available apps with alternate ways of displaying the timelines. JoinMastodon has a regularly-updated list of desktop and mobile apps. I personally like Toot! on iOS.
- Filtering your public timelines by language will make them much easier to read on large instances. Language filter settings are available in Settings > Preferences > Other.
- By default, the desktop view on Mastodon is a single-column view similar to the modern Twitter interface. If you’d prefer something more like TweetDeck with multiple parallel columns of content, enable the advanced web interface in Settings > Preferences > Appearance.