Mastodon: Don’t Worry About Instances

TL:DR — Don’t worry about Mastodon instances, you only need one account to talk to anyone on any instance. Now read on.

Some of you may recently have become aware of a social network called Mastodon. It’s an alternative to Twitter, and it’s better in a number of ways: it’s a decentralised service so you’re not bound to the decisions of a single company that doesn’t have your best interests at heart; it’s more customisable, with better features for ensuring you don’t have to deal with trolls; it has a native content warning feature that works something like the old LJ-cut or WordPress’ “more” feature; it has privacy settings *per tweet* rather than just per account, allowing for a much better level of granularity; and it runs on Free Software, which is important for those of us for whom that sort of thing is important. 

And for those of us who want a Nazi-free, TERF-free, or other-harasser-free experience, it’s excellent.

(For those of you who care about that kind of thing and remember back in the old days of 2008 or so, roughly Mastodon is to Twitter as Dreamwidth is to LJ).

I set up an account in April, but nobody much was using the service and I lost my login details. I set up another account a month ago, when a few friends also did, and we’ve had a little bit of chatter going on there for the last month or so — I’m , if anyone wants to follow me on there. We’ve all still been using Twitter, because that’s where the action is as it were, but Mastodon has felt nicer and more usable.

And then, the day before yesterday, there was a MASSIVE exodus to Mastodon. I don’t know how widely that exodus went — politics and celebrity Twitter both still seem to be firmly on Twitter, as does a big chunk of the casual user base. But the comics and SF people are all over there, from big names (Al Ewing, Patrick Nielsen Hayden, Scalzi, Warren Ellis) to the unknowns like me. Whether they’re planning to decamp permanently there in place of Twitter, or they’re just trying it out and probably sticking with Twitter, I don’t know, but for the first time Mastodon is feeling like a place that might have more legs to it than, say, Diaspora (a similar Twitter-alternative social network I tried about five years ago, but which only two other friends ever bothered with; it’s apparently still going, but no-one uses it).

However, pretty much everyone I’ve seen go over there has been massively confused by a concept called “instances”. These have clearly been very badly explained, and almost nobody seems to understand them, and it’s putting many people off from using what is actually a very intuitive, easy-to-use, system. I got them straight away, but that’s because I’m a techie. The explanations that have been put out are obviously hugely confusing for anyone not from a tech background.

So, I’m going to explain what instances are. But first, I’m going to say something very important — the single most important thing you need to know about Mastodon instances.


Now that I’ve said that, I’ll say it again.


Now I’ve said that, for anyone who is *curious*, or who is in some way constitutionally unable to use a system they don’t understand everything about (and I say that not as a knock — I’m one of those people myself a lot of the time), here’s a *brief* explanation of what a Mastodon instance is.

It’s a domain name.

That’s all it is. Anyone can set up their own Mastodon instance on their own domain, and that means that when you set up a username it has your username *and* domain in it. So I’m @stealthmunchkin [user name] @mastodon.socal[domain name]. See?

It’s like having an email address. And just like having an email address, other people can have the same username on other domains. Like my email address is . There are undoubtedly other people on other domains who have the username andrew, but no-one else getting email through has that username, and if you want to send me an email message you have to include both.

(If you’re sending an @-reply to someone on the same Mastodon instance as you, you just use their username, but if you’re sending it to someone on another instance, you include their instance — so someone else on can just type @stealthmunchkin, but someone on another instance would type ).

This has led many people to think that you need to set up a username on every instance where anyone you want to talk to is, because they’re thinking of sites like Twitter and Facebook, which are single, centralised, sites. Again, think of it like email. To be clear:


I’m going to get a tiny bit more technical here in a second — not very technical, but a tiny bit — but the easiest way to think of this is, again, like email. I have an email address at, but if I want to email a friend on, or, or perhaps at their work email address, I can. I don’t have to use a Gmail address to keep in touch with Gmail users, or a Yahoo address to keep in touch with Yahoo users — I can even send out an email to five or ten friends simultaneously, all of whom are on different servers, and they can all read and reply to it.

So what does having instances do that just using a site like Twitter doesn’t?

Firstly, there’s redundancy. Imagine if tomorrow Twitter closed down. I would lose touch altogether with my friends on there, and we wouldn’t have a site to talk on.

But if closed down, I’d have to get an account on a different Mastodon instance, but there would still be other instances to use. And I’d have to find my other friends who are on at their new addresses, but I’d still be able to follow my friends who use, or or or and all the other sites at their old addresses.

There’s also the ability to have different moderation policies on different instances. This is possible because of something called federation.

Each Mastodon instance “federates” with the other instances, and by default each one connects to all the others. But the moderator of each instance can set their own moderation policies, and this can include *not federating to other instances*.

So for example the terms of service for include things like:

    The following types of content will be removed from the public
timeline, and may result in account suspension and revocation of access
to the service:      
Racism or advocation of racism
Sexism or advocation of sexism
Discrimination against gender and sexual minorities, or advocation thereof
Xenophobic and/or violent nationalism

The following types of content are explicitly disallowed and will result in revocation of access to the service:    
Sexual depictions of children
Content illegal in Germany and/or France, such as holocaust denial or Nazi symbolism
Conduct promoting the ideology of National Socialism

In other words, don’t be a Nazi, or a TERF, or a dick generally. 

However, suppose you *are* a Nazi, TERF, or total dick. What do you do then?

Well, you could start up your own instance called something like, and have terms of service that say stuff like “you can only come on here if you use at least one slur against a minority in every post”. The software is free, so you can do that. And you could post what you want.

But the moderators of might well choose not to federate with that instance. That would mean you couldn’t see anything on, and no-one on could see any of the inventive ways you’d come up with to insult less privileged people than you.

However, a hypothetical third instance,, could still federate with both. The people on there could talk to everyone on both sites, if they wanted, and be seen by everyone on both sites. 

(This is, again, like email. Your email provider probably blocks certain domains which are just used for sending spam, but other providers might not block those domains — but you can still send email to those other providers).

It’s a genuinely clever solution to the false dilemma of free speech versus free association. Anyone who wants or needs a safe space gets one (and if one of the existing instances isn’t safe enough, they can set up their own if they have the technical know-how), but you can also express yourself freely wherever you want, and you can still generally connect to everyone else, even if they don’t need the same level of troll-avoidance as you do.

There’s one other useful factor about instances — if you’re on a small instance (I’m on the biggest one) it can act something like an old-school web forum *as well as* a social media site.

While Mastodon basically looks like Tweetdeck (the better of the two web Twitter interfaces), there are four sets of columns you can view. “Home” is just the latest posts from everyone you follow. “Notifications” are like Twitter notifications — people who’ve replied to you, or followed you, or favourited or reblogged one of your posts.

But there are two more possible columns you can view. “Federated timeline” is, literally, every single public post that’s being made to any of the Mastodon instances that your instance is federated with. In my experience this is largely in Japanese, and fairly useless to me. But there’s also “local timeline”, which is every public post being made to your instance.

If you’re on an instance with thousands or tens of thousands of users, that’s also pretty useless. But you could decide to join or set up a small instance, with maybe a hundred users, all of whom are, say, science fiction writers or knitters or Beach Boys fans or whatever. Then when you looked at the local timeline, *even those people you didn’t follow* would still be people with whom you shared an interest, and so might be people you’d want to talk to.

(You can also search Mastodon by hashtag, in much the same way as you can Twitter).

Anyway, that’s it. That’s the whole instance thing in a nutshell. I hope this helps put some people’s minds at rest.

One final thing — if you currently use Twitter, and you now want to start using Mastodon instead or as well, connect your Twitter account and your new Mastodon account using , and that will show you the new Mastodon names of any of your Twitter friends who’ve already done that, and will help anyone else coming over there to find you.

This blog post has been brought to you by the generosity of my backers on Patreon. Why not join them?

This entry was posted in Uncategorized. Bookmark the permalink.

9 Responses to Mastodon: Don’t Worry About Instances

  1. prankster36 says:

    OK but here’s the big question for me: how do you browse a different instance, such as, say, the comics one? Is it possible to pull up a timeline for an instance that isn’t your own, regardless of whether you follow them or not? Or do you have to follow people in that instance individually?

    • Andrew Hickey says:

      At the moment you have to follow people in that instance individually (though I’ve seen a few people making “browse other instances” as a feature request, so I imagine someone will get round to coding it at some point).

      But of course that just means that *at worst*, if you choose instance at random like I did, you’re treating it like Twitter, where instances don’t exist and you have to follow everyone you want to follow.

    • If you want to browse the instance as an instance, just go to the instance web site. (Useful mainly on a small instance where everybody has some common interests.) If you want to follow a specific user, go to their profile and click on “remote follow”. You’ll be prompted for a Mastodon ID.

      On your own Mastodon instance there’s a search function that seems fairly good at finding people on other instances. Works much the same as search on Twitter. is helpful for finding the Mastodon ID of people you already follow on Twitter. I have not been able to get its “follow” buttons working, but it does provide links to instance profiles, and you can remote follow there.

      Today is the first time I’ve gotten serious about Mastodon. Not about to abandon Twitter, but a lot of people I follow are. Followed about a dozen folks using the above tools, and it’s pretty easy.

  2. katster says:

    Just a lurker who reads your blog, but I went ahead and followed you anyway. I have trouble with Twitter, and I’m not sure this is going to be much different, but hey. It’s worth a shot.

    (, if you’re curious.)

  3. po8crg says:

    However, suppose you *are* a Nazi, TERF, or total dick. What do you do then?

    You join gab and then complain that the gab app is blocked by the Apple App Store and Google Play Store?

    I mean, that’s what actually happens.

    [tbf, their complaint is completely fair: “twitter is full of Nazis and you let them on, so why not us”?

  4. Dave Page says:

    Is the interface between Mastodon instances fixed and clearly defined, or is the implementation the standard?

    One of the problems with previous efforts at this is that there was one bit of software which everybody had to run roughly the same version of for federation to work; those who balked at running monolithic PHP apps didn’t really have the option of creating another implementation.

    • Andrew Hickey says:

      That’s a good point, and I don’t know for sure. Having poked around a little, there is a set of “using the API” documentation on Github, which suggests interoperability has at least been considered, and one of the bits of pushback I got about this post from the kind of FOSSplainer who thinks it’s very important that you be technically accurate in everything (when this is clearly lies-to-children) was “you shouldn’t say that Mastodon is the social network — the Fediverse is the social network and Mastodon is one way of accessing it”.

      That would *suggest* that they’ve at least thought about this problem, but I’ve not waded through the documentation enough to be sure.

      (Also for anyone worried about running a PHP app, the codebase of Mastodon is in Ruby — for anyone reading this who doesn’t know why that would be a concern, PHP is a language where it’s notoriously hard to do security well.)

Comments are closed.