A futuristic Mastodon introduction for 2021:

Focusing on things that come up frequently and I don’t see explained that often.

Here’s the lede: You can’t ever see or search everything posted on mastodon. You can only see the content that your instance knows about. This has some fascinating, positive, non-obvious implications. For more info on what’s ‘your instance’ and how does it know about stuff, keep reading.

(beta; comments welcome @elilla@transmom.love . thx queers from @embracing.space, @plural.cafe and others for help, if you want to be credited in public just ping me.) (current version: 2022-10-28.)

Ok what is a masto?

Like Twitter, but in the 🌌‍✨‍fediverse‍✨‍🌌.

(>.>) and what’s the fediverse, silly

Do you know how, if you have an email at gmail, and your friend has an email at yahoo, you can still email one another? But if you have an account at Twitter and your friend has an account at Instagram, you can’t message, comment, follow, like, or share their sweet insta outfits from within twitter. You have to create an account at instagram.

The fedi is like email, but for everything.

Everything? Instagram too? But I thought it was just hippie Twitter or something?

It’s both.

All of that already exists. Mastodon is an app like twitter, but federated. Misskey is also an app like twitter, but federated. So people using Mastodon can read, like, follow etc. people using Misskey. Then there’s Pixelfed, a social network app for photos like Instagram. But federated. So you can follow your friend’s Pixelfed account from your Mastodon account and see their cat photos on your twitter-like homepage, you don’t have install the Pixelfed app or create an account there. And Peertube is a service like Youtube, but federated, so you can follow, etc. etc.

ok Mommy make me want it~ why should I care?

No capitalist control: There’s no one big company making the rules.

No ads, no tracking: None.

Open source software: Everybody who can read code can see what it’s doing. So you know there’s no tracking or sketchy stuff going on.

No single point of failure: Even if one Mastodon website is bought by Elon Musk, the federation itself can’t be, because the fediverse isn’t a website, it’s a communication method that anybody can use.

No evil design: It’s not made to be addictive. No algorithms maximizing Engagement. Timelines are ordered by time, not by clickbait. Nothing is ‘promoted’. There’s no quote-retweets. Retweeting is called ‘boosting’; this makes it obvious to everybody why you shouldn’t retweet toxic stuff to criticise or mock it. (In twitter most of my feed was quote-retweets snarkily dissing on things I hate, thereby exposing me to them; in masto most of my feed is people giving one another emotional support.)

Small, intimate, tightly-bound communities tailored to you: This is what I’m writing this FAQ to talk about, really. Everybody’s view of the network is different. Posts do not reach the whole of Mastodon. Hashtagged posts are not visible to everybody in the world who searches for the hashtag. This isn’t immediately obvious, and I’d call it Mastodon’s number 1 underrated feature: As time goes by, it naturally builds up a graph of connections that work for you.

In my experience, I not only almost never see nazis and terfs, I also almost never have techbro replyguys pop up – not even because of blocking, but just because of the way connectivity and discovery work. The resulting difference in mood from twitter or reddit is like night and day.

These good-vibes hipster networks are all deserts. There’s no escape our capitalist overlords. Are there even people in there?

Your mileage may vary, but it’s better than you think. I’ve had friends try it out and never find people to interact with, but when you get the hang of how it all works, dang does it work. Things I see people bonding over include: Open source tech, anarchist insurrectionary organising, LGBTQ+, neurodiversity/plurality/mental health, furry/kin/kink, witchery, t4t hookups, and speaking Japanese (it’s popular in Japan for privacy reasons). That’s what I can observe in my corner of the graph, at least. The part of the graph I see reflects my interests. See what I mean?

For me this is frankly the best social network I’ve ever tried. I’ve been Very Online for 21 years and I’ve never made as many friends as often and as deeply as I have in the fedi. Almost everybody who comes visit me IRL in my own house these days is from masto.

ok I wanna see what it looks like, I’m going to create an account at mastodon.social

No!! I mean ähm you don’t have to. Mastodon is not a website at https://mastodon.social. Mastodon is not a website at all; it’s an app to communicate with any website on the fediverse. Think of the fedi as more like a language than a place.

Twitter has only one website, twitter.com. This website is owned by Elon Musk a corporation Elon Musk, and this Elon Musk corporation Elon Musk has absolute rule within it.

Federated services can have as many websites as people wanting to set them up. Again it’s like email; you can always create a new email domain, and existing domains will happily talk with the newcomers.

In fedi jargon the websites are called instances . Some masto instances include mastodon.social (the ‘default one’), scholar.social (academics), kolektiva.social (activism), queer.party (gays), or mstdn.jp (big in Japan). When instances are in speaking terms to one another, we say they federate.

(Note for tech people: The language is ActivityPub; you need a DNS domain to talk in the federation; Mastodon is an open source ActivityPub webapp; it offers both a browser interface, and an API used by various native clients.)

🤔 then how do I join?

Pick an instance you vibe with, and create an account on the website of that instance (see below for suggestions).

Once you have an account, you can access it through the instance's website (with desktop or mobile browsers), or, alternatively, with Mastodon-compatible apps like Tusky.

And once you have that account, you can follow, interact etc. with people on any instance, not just the one you picked. (As long as they're not blocked by your instance admins.) It's all the same big federated universe. A fediverse.

if I can access the whole fedi from any instance, what difference does it make which one I pick?

…and who owns all this? What are they trying to sell?

Each instance is owned by the people running the website. If you can run a website server, you can create your own instance. I used to run my instance at home from my smol Raspberry Pi computer in the living room, til the girlfriend of a girlfriend (now a girlfriend) offered me a faster server.

No central website? No central authority? I’m not an anarchist and I think that sounds really easy to abuse. How do I stop the trolls and nazis?

Same way we do in email: block. As a user, you can mute or block individual accounts or whole instances. In practice most instances don’t tolerate bad behaviour – stricter rules than Twitter are the norm – and so it’s usually easy to spot the nazi instances and block them wholesale when new ones pop up. I’m a heavy mastodon user and I’ve only ever had grief once, and then again when I raised the alarm, everybody around me instantly spread the word and cut off all connections to the kiwifarms/fash instances doing the bad things, it was beautiful to watch it in action.

(Notice what I mean by ‘everybody around me’: all the people I federate with, all the people who are seeing my content, which again is not the whole of the fedi.)

Instance admins can block domains for their whole instance. This is called defederating. For example, if you know that one instance happily hosts terfs, you can refuse to talk with their whole instance, and now no users of your instance will ever be seen or touched by their toxicity.

Many small authorities? I’m an anarchist, and that sounds like it puts a lot of power in the hands of instance admins.

Yup. Choose instances whose values you align with (or run your own instance).

In particular, notice that Mastodon has no end-to-end encryption. That means the server admins can read your DMs. This is also the case for Twitter, Instagram etc., of course, but just because masto is somewhat more private doesn’t mean it’s fully private; do not discuss stuff on it that the cops can use against you, use Matrix or the like.

Another issue with admin power is that if your admins defederate an instance that has a friend you follow (or follows you), your friends will silently disappear from your feeds. I consider this a bug – there should be an alert or something – but for now I recommend having a backup list of people you talk to, just in case. There’s an export function.

(For techie people: I like using mastodon-backup to archive my own posts daily, and it saves your follower/following lists, too.)

So blocking is common and socially acceptable? I’m a defender of Free Speech, and I think that sounds dystopic.

There are many Free Speech instances which, as a matter of policy, federate even with nazis. Go make an account there. N.B. I won’t federate with you and we won’t ever see one another, which is the best for both of us really.

Instances are like your flat; being let into somebody’s instance is a privilege, not a right.

What if my instance admins turn out to be fuckboys?

There’s a migrate function. It’s a bit annoying because everybody will have to get used to the new handle, and some of your configs etc. are not currently migrated; but it will automatically redirect followers to your new account, and put up a notice telling new people where to find you.

Tell me more about this magical community-building feature you love

Please bear with me on this, ok? It will take some time to explain, but when you get it, it’s fascinating. I’m not even sure it was designed like this on purpose, but it works so well.

The reason mastodon is good emerges from two details whose reverberations are easy to underestimate:

  1. You can't browse other instances’ content directly. Rather, your instance has local copies of the remote content, and you browse these local copies.
  2. Your instance won't get these copies unless someone requested them first.

For example, if you search for a hashtag, your instance won't go search other instances for toots including the hashtag. Rather, it will search for the hashtag in the toots it already had copied before your search. In other words, you can only browse content that your instance knows about.

There are 2 main occasions when your instance gets a copy of remote posts:

  1. If someone in your instance is following a remote user, and the remote user posts something;
  2. If someone in your instance is following a remote user, and the remote user boosts a third party's content.

Again, think of it like email. Clicking “follow” is like subscribing to a mailing list; from that moment on, all posts will be sent to your inbox. Clicking “boost” is like sending a forward to all your followers; they now have a copy of the email too. The search box is like searching the contents of your inbox. It won't search emails that were never sent to you.

The difference from email is that the same “inbox” is shared between everyone in your instance. So if anyone from your instance is following @catra@horde.social, Catra will be discoverable for you, too. If none of your mates followed her, Catra won't even pop up in searches.

To put it another way, your view of the fediverse is curated by what your instance collectively subscribes to.

(There's one way to manually fetch a toot that your instance never got: paste the link on the search box. You can use this technique in order to reply to, boost etc. toots that you found through other means.)

Can you give an example but like, gayer?

Suppose @⁠kat@catgirl.social follows her girlfriend on @⁠bun@bunnies.club. Bun opens https⁠://bunnies.club in her web browser, and posts a toot (like a tweet, but in masto). She says: “I love dandelions.” She wants everybody to know about this important fact, so she sets her post as public.

Since it’s a public post, all local users—the bunnies in bunnies.club—can see this toot in the local timeline. This timeline is like twitter, people in a single website socialising.

Meanwhile Kat opens her browser and logs into https:⁠//catgirl.social. Remembers, this is a different server, a different computer altogether. Bun’s post wasn’t saved in this computer at all.

But because Kat is following Bun, and only because of that, the computer running catgirl.social subscribes to remote toots from bun@bunnies.club. So, in the background, the little demons inside the computers had already forwarded a copy of Bun’s post to catgirl.social, and this copy shows on Kat’s home timeline (which lists posts from all the girls she follows).

Kat opens her browser and sees a toot by @⁠bun@bunnies.club saying “I love dandelions”. She obviously clicks “like”. Notice she’s interacting with the copy of the toot on her own instance, catgirl.social (the instance's “collective inbox”). So the “like” is saved for this copy. At this point Bun can’t see it at all. But the catgirl.social demons will automatically forward the “like” to bunnies.club, and then Bun gets a notification that she’s liked.

Meanwhile another catgirl, Mewie, logs into catgirl.social. She wants to discover new people to follow, so she clicks the federated timeline button. This shows all the public toots that the instance knows about, that is, the local ones, plus remote ones that it ever got a copy (not: all public toots from everywhere). Because someone in catgirl.social was following Bun, the instance got a copy of the dandelion toot. Because Bun marked it as public, it will now show up for all catgirls when they browse the federated timeline. Mewie learns that Bun likes dandelions. She clicks ‘follow’. Now Bun's posts will show up in Mewie's home timeline, too.

Note that the only reason that catgirl.social is getting Bun's remote toots is that Kat is following Bun. Kat’s decision to follow Bun makes Bun’s public toots visible for all catgirls. This is why it’s important to pick an instance that you can vibe with; everybody in your instance is curating what content you even see, even for the public (federated) timeline and hashtag searches.

Meanwhile a doggirl, Dee, logs into dogfolk.online. As it happens, no one in dogfolk is following anybody in bunnies.club. So even if Dee clicks the public timeline, Bun’s toot won’t show up. The instance doesn’t know about it.

But Dee is following Kat, and Kat has decided to boost Bun’s toot. So we go

@⁠bun@bunnies.club →post is sent to followers→ @⁠kat@catgirl.social →boost to followers→ @⁠dee@dogfolk.online

Dee will then get Bun’s toot via Kat’s boost, and that one toot from Bun will now show up on the dogfolk.online public timeline too, for all doggirls not just Dee.

Suppose Dee finds this cute and follows Bun. From that point on, and only from that point on, all new public toots by Bun will be known to dogfolk.online . (Old ones aren’t automatically fetched, even if they’re public. To continue with the email analogy, you only get emails sent to you after you subscribed.)

Fun ramifications: Partial discoverability = curation = community-building

I hope I could make the flow of toots understandable, because think of the consequences IRL:

Note how this is all emergent behaviour. It’s not based on blocks, though blocks are important to weed off bad parts of the subgraph. But independently from that, each instance’s view of the fediverse is unique, and without anybody doing anything, it naturally converges towards a community that makes sense to the instance’s members.

In practice this results in a feeling of social cohesion and intimacy that I haven’t felt online since early Livejournal days.

Isn’t that a bubble? How do you avoid an echo chamber?

You can follow people with contrasting values if you want, nothing’s stopping you and you don’t need admin permission to do that. But why would you want to write to people who don’t want to read what you write? It’s no more a bubble than your circle of friends.

I get a lot more interaction from a lot more of a diverse crowd here than I did on twitter, because a single shared space like twitter ends up creating a superstar vs. mere mortals dichotomy, and as a mere mortal not posting discourse bait, I never had anybody read my stuff in the first place. Here there’s a small group of people who always interact with my stuff, and I know everybody by name, and I love them all.

But how do I promote my toots to a large audience in a system like this?

That's the neat part, you don’t.

How do I make everything easily discoverable by a large audience?

You don’t.


Using mastodon in practice

What should I look for in an instance to join?

First of all: Don’t join mastodon.social . Because people coming from outside don’t get how federation works, they join this one as the most visible, so it has already become too big. Its moderators don't care or manage the space in any useful way, so a lot of toxicity flies under the radar. Moreover, the devs have shown an increasingly centralising tendency—they want to become a new twitter—and are actively making the interface harder to interact with other instances.

Instead of mastodon.social, find an instance where people seem to be people you'd like to have around. There’s always a few instance search websites available; currently we have instances.social and fediverse.party. Try to search a few keywords that interest you, and see which instances pop up. Try clicking an instance’s ‘about’ page to see its rules, and also the admin and ‘profile directory’ links on it to get a feel for the general mood. Your friends already on Mastodon can help.

Instances diverge not just in culture but in features such as number of characters allowed per toot, length of profile description etc. Instances running the glitch-soc fork of mastodon have more features, but may be less stable.

Remember what we’ve seen about how federation naturally curates one’s audience and content. This implies that:

Don’t forget also to check the instance’s custom emoji set in https://emojos.in, since non-admin users can’t add emoji. Very important point.

Some instances I like

The instances below are all:

Keep in mind that even on instances that seem to have a well-defined theme, typically people aren't expected to post on that theme only. (The expectations are written in the instance rules). Most people on most instances are sharing random stuff like you'd see on twitter; it's more about what kind of community you're sharing to.

How do I find people to follow?

Why is it asking me to put my login again and again?

You’re leaving your instance and browsing theirs.

In the writeup about federation above, we saw how you don’t interact with people’s toots in their home instances directly. You interact with the copies in yours. This is how masto expect things to work. Are you by any chance using a browser and opening the toot links in new tabs? I’m sorry, that’s a muscle-memory that breaks masto’s UI design.

The toot links will bring you to the original toot, in the source instance, where you don’t have an account (unless you have an alt there). So it has to ask you which is your home instance and make you login again. This makes it pretty much unusable.

The solution is to not open up individual toots in new tabs. If you need more powerful multiplexing, try to get used to the multi-column mode (available in the settings), but don't leave your browser tab. Fortunately there are keyboard shortcuts for efficient interaction; press ? for a list.

What’s up with the ‘Content Warning’ field?

If a toot has a CW, people don’t automatically see the toot, only the CW. You have to click it to open the toot.

Mastodon puts the needs of users front and center. Many users would prefer not to have certain kinds of content pushed onto their timelines when they're not in the mood to engage with it. This is not just about actual triggers to trauma, but also stuff that people simply don’t want to see sometimes; political news, depressing talk, long texts (in instances with a big toot limit), anything.

Which CWs are normally used differ by instance – in most instances people will mark political posts (‘pol’) when they have news that can be depressing, but in activist instances most users find that redundant. It does mean that if you follow them from your non-political account, you'll see un-CW'ed political posts. That means you only follow them if you don’t mind political stuff pushed into your timeline.

Here are some kinds of content I see lots of people wanting CWs for:

There are many others; accepted practice depends on instances and changes with time. Just observe what everybody is doing. Nobody can know all CWs everybody would like to have, and from time to time somebody will request you to CW something or another. They will request so in a friendly, polite way. Tell them in a friendly, polite way that you're going to do it, then do it from now on.

the post has a content warning but I have no idea what it is cos it’s some weird abbreviation

Yeah sorry, these are easy to type and get addictive, but they do make the feeds more impenetrable to newcomers. Here’s some of the most common ones (refer to item above for full explanations):

And abbreviations from the Outside World pop up frequently, too:

Why are people complaining to me about image descriptions??

After uploading a picture, video, or audio, click the “Description” button with the pencil icon at the attachment. You'll get a box with a text field to describe the media.

People who are sight-impaired depend on these descriptions to be able to enjoy your feed. Other systems like Twitter also offer a way to add image descriptions, but it's nowhere near as convenient, nor widespread. On the Fediverse people expect of you, as a matter consideration, to describe your images in this way.

If you find it tiring, then even a brief description already helps a lot (like “A screenshot of the comic mentioned”). If it's an image of text then post the text transcript in the description; most instances have a button to detect the text automatically, but it might be faster to just copy-paste it from source. Many people actively enjoy writing descriptions that are vivid, witty, interesting in of themselves; if you do that, keep in mind that the primary use of descriptions is audio users, and tailor your writing to fit audio. Sighted people also often read the descriptions, so this is a good place to highlight the point of the image, or explain a detail etc.; just keep in mind this isn't a caption, the description has to stand on its own as an independent alternative to the image.

An aside: Like all accessibility features, image descriptions benefit not just disabled users (which would already be reason enough to do it), but also has many unexpected benefits, because more accessibility always adds. There's been situations when I've been on a spotty mobile connection and could follow a Mastodon thread thanks to image descriptions, because text loads a lot faster than images. Someone in a tightly-metered data connection could also browse freely by disabling images, and the descriptions help you search your backups by keyword, etc.

I clicked someone’s profile and it’s emptier than I expected

Remember how your instance only shows you toots that it knows about? And it mainly knows about a toot if a local user was following the remote user before they tooted. (Or it was boosted, or manually fetched; see above.)

When you open a remote user's profile, you only see their toots that your instance knows about. Unless a local user has been following them for some time, that will be nothing, or just a small random sample of boosted content.

There's a link on the profile pages warning about this, and it will take you to their profile page in the remote instance. You can see all their public toots from there.

Why am I not seeing all replies to somebody’s thread?

Remember how your instance only shows you toots that it knows about? If you're following remote user A and they are replying to remote user B, but no one in your instance is following user B's toots, you won't see B's replies.

If the discussion is public, you can click the link to the remote toot to open it in its original instance; all public replies will be visible there.

Wait—I don’t see all likes to other people’s posts?

Likes follow the same rules as toots. Your instance only ever sees likes that it knows about. If no local user was following the like-giver, their like won't be visible for you.

Why are people telling me to not disguise evil words like t@rf or n*zi?

There's no text search in most instances. You can't find toots by the words they use, only by hashtags. Add to this the way federation and curation works (see previous section), and it results in a very different exposure level than twitter. Bad people have no mechanism to locate you by problem words.

We described how the content warning field is widely used to help people's timelines be engaged with active consent only; e.g. if you want to analyse some nazi hate speech, don't post the hate speech in the open, post it behind a cw like “antisemitic hate speech, fucking nazis”. But some people don't even want to have these warnings in their timelines. Maybe there's been a tragedy and it's all over the news and half the toots are about it, and the person is just tired. There's a filter function, and in situations like this they can just filter out all content about nazis. If you spell it “n@zi”, you ruin the filters.

Tell me about these custom emoji

How do I use other people’s emojis?

What’s up with all the blob emoji?

This interface is clunky, how can I become a power user?