Mastodon Exit Interview
I am currently winding down the Mastodon bots I used to post sunrise and sunset times. The precipitating event is that the admin of the instance hosting the associated accounts demanded they be made nigh-undiscoverable, but the underlying cause is that it’s become increasing clear that Mastodon isn’t, and won’t ever be, a good platform for “asynchronous ephemeral notifications of any kind”. I’d also argue (more controversially) that it’s simply not good infrastructure for social networking of any kind. There are lots of interesting people using Mastodon, and I’m sure it will live on as a good-enough space for certain niche groups. But there is no question that it will never offer the fun of early Twitter, let alone the vibrancy of Twitter during its growth phase. I’ve long since dropped Mastodon from my home screen, and have switched to Bluesky for text-centric social media.
Mastodon is an instantiation of an open standard called ActivityPub, which was built mainly in reaction to Facebook’s closed ecosystem. In the heady days of the 2010s, there was much resentment of digital monopolies, and many techies dreamed of a way to share posts (among other things; ActivityPub contains data formats for far more than just text and pictures) across their “social graph” without being beholden to a single company. The hostility to any centralized “source of truth” that could be owned or co-opted by a single company (the same hostility motivating cryptocurrencies) made “distribution” a, perhaps the, primary design goal. The distribution model chosen was called “federation”: Mastodon would consist of a collection of independent “instances” that were free to “federate” together to form (potentially) a single universal social graph.
The important technical point is that ActivityPub is (again, among other things) a protocol for one instance to tell another “I am interested in the following kinds of posts from you, so please send them to me when you see any” and for that other instance to periodically say “here are some posts you’re interested in”. Obviously there’s lots of technical detail, but what matters is that it’s not (primarily) a mechanism for accessing remote information; it’s a way to asynchronously distribute data so that the data is available locally.
Federation does not work
I’m not saying federation “won’t” work or “can’t” work. Merely that in 2025, nine years after deployment, federation does not work for the Mastodon use case.
I could opine at length about possible federated architectures and what I think the ActivityPub people clearly got wrong in hindsight.1 But the proof is in the pudding: Mastodon simply doesn’t show users the posts they ask to see, as I quickly learned from my collection of bots.
The most immediate problem is that you only have access to posts that are present on your local instance, and posts are only propagated to your local instance if it has expressed interest in them (to the instance where they originate). It’s a chicken-and-egg issue: how do you know whether you’re interested in something if you can’t see it?
This problem became abundantly clear after setting up my solar bots on the mas.to instance: the mastodon.social instance (where I keep my personal account) had expressed no interest in any of these accounts, so none of their posts were available to my personal account. Crucially, the posts did not exist even if I visited the profile page of the account: even after weeks of daily posts, the profile page displayed by mastodon.social claimed the account had never posted, and the posts would only begin appearing after someone on mastodon.social began following the account. (And even then, for reasons far trickier to debug, some posts would never propagate to instances where they did have followers. The ActivityPub architecture and protocol are just flaky.)
The federated model simply abandons the idea of a “source of truth” for an account, and as a result it is less reliable (and comprehensible) than mature central-server-with-distributed-caching models used for feeds like RSS (as well as every web site).
Account migration does not work
One of the big selling points of Mastodon was that you can pick which instance your account lives on, but it is easy to change your mind and switch to a different instance later on. This feature was wildly oversold.
Mastodon allows you to post the equivalent of a web redirect: your followers are informed of your new instance and seamlessly migrated over. Your posts, however, do not move with you. Which is kind of a theme: the system simply doesn’t think posts are terribly important.
But worse than that, the redirect is hosted by your old instance. If you are moving because your old instance went down, you’re stuck. If you are moving because the administrator of your old instance decided to nuke your account, you’re stuck.
It is not hard to design mechanisms for accounts to actually “own” their posts and followers and migrate them between instances. Instead, Mastodon picked a single “choosing to migrate from one working instance you’re on good terms with to another” use case and stopped there.
Direct messaging does not work
What other social systems call “direct messaging” is called “private mentions” on Mastodon, and it is simply the worst feature design I have ever seen in a mainstream technical product.
When you “private mention” someone, only you and they can see the post. And they can reply with a “private mention” of their own. But if anyone in that “private” thread accidentally mentions any other Mastodon account by name, that is itself considered a “private mention”, and that person is invited into the thread. It is an absolutely insane UI design that makes it extremely easy to share private conversations with exactly the people you don’t want reading them.
Since announcing that my solar bots had been threatened by the mas.to adminstrator, there were several private conversations about me, and I know this because they accidentally mentioned me in those conversations. And then quickly deleted the messages to re-hide them from me. This happened a half-dozen times.
In short: it would be far better not to have private messaging at all than to ship such a catastrophic implementation of it.2
Content moderation does not work
Content moderation is the hard problem in social media, and it’s been said that moderation (ie what content people see) is the product. As far as I can tell, Mastodon was designed in complete ignorance of all the actual challenges of moderation at scale, and focused only on a weird offshoot of the “federated” religion: the real problem is that people want to opt into a moderation regime based on their instance.
Of course this simply makes scaling even worse: every instance now has to moderate all content across the network (not just their own); every instance has to design, communicate, and defend its moderation policy; every user has to parse dozens of different moderation policies to understand both what instance they want to host their account on as well as which other instances will accept their content (based not just on the content itself but also on other instances’ opinions of the moderation policy of the instance hosting their account). Luckily(?), Mastodon is not (and never will be) popular, so scaling never became much of an issue.
The problem that did manifest is that all of this moderation is entirely opaque to users. If you explicitly follow a particular account, you may not see posts from that account because its instance doesn’t like its content, because your instance doesn’t like its content, or simply because one of the two instances doesn’t like the other. Which is very much a thing.3 But the only way to know what you’re not seeing is that…you’re not seeing it. Ie if you follow an account, you’d have to find some (outside-Mastodon) way to find out what they’re posting and then compare it with what you’re seeing in Mastodon. And of course it is virtually impossible to know which of your followers are seeing your own posts. It’s a maddening design.
Many instances do publicly state (in an “about this instance” field) which entire instances they’ve explicitly de-federated, and sometimes which shared blocklists they use, but I’ve never seen this information posted as a feed that you can follow to learn about new (or reversed) de-federations. Content moderation on Mastodon is shadow-bans top to bottom, not as a designed policy but simply because nobody worked out any kind of transparency mechanism.4
Live feeds do not work
For all the dumb, anti-scalable ideas in Mastodon, one really stands out: “what if you followed everybody???”
Mastodon’s main UI allows you to see (some) posts from the accounts you follow, but it also offers several other feeds: you can see all posts from everyone on this instance, or you can see all posts (that your instance happens to receive) from anyone on any instance.
It should go without saying that both feeds are utter nonsense once there are more than a few thousand users. But because both have pride of place in the UI, new users (in particular) are convinced that they must be useful somehow. And so a culture has developed of complaining about anything that appears in either feed that is considered “noise”.5
This problem could be mitigated by having these feeds follow less than truly “everybody”, but as of early 2025 there is no way to opt out of only these feeds; if you opt out of the feeds then all your posts are also removed from all search indexes and can’t be found by anyone who doesn’t follow you.6
Mastodon development does not work
Although I question the fundamental technical premises of the “federated” architecture, there are fairly straightforward ways to address all of the above complaints. As a purely empirical observation, they are not being addressed. No significant progress has been made on Mastodon or the underlying protocols in years, and the development community seems to be content with tweaks around the edges, on the premise that the current system is meeting its primary design goals.
When users cannot find or see the posts they explicitly request, when much of the UI is devoted to features that offer no value, and when comparable services like Bluesky are exploding in popularity while Mastodon’s user base stagnates, I believe more ambition is required. Clearly my early hopes for Mastodon as a platform do not match those of its developer community.
Mastodon culture does not work
This is of course the greatest stretch of my “does not work” conceit. For all my gripes about Mastodon as infrastructure, social media is defined by its communities and content, and the bar for “good enough” infrastructure is (arguably) very low. There are lots of fascinating, thoughtful, kind people who use Mastodon, and I’m willing to believe that there are certain niche subcultures who have built vibrant, active communities on the platform.
My experience, however, is that “the Mastodon community” is simply not something I’m interested in, particularly when compared with the communities I’ve experienced on Bluesky. The platform never achieved a critical mass of contributors in any of my areas of interest (even technology and software engineering), but beyond that it’s just never been fun. I argue that much of this (dearth of) culture is reinforced by the technical design.
Mastodon was explicitly designed to be anti-viral. The absence of quote tweets in particular was an intentional choice to prevent piling-on, and to avoid the Twitter phenomenon of “the main character of the day” having their life ruined. Such harm reduction is a noble goal, but a social media platform that eschews virality entirely is sterile; the day when everyone was riffing on the “skydiving baby” meme on Bluesky felt like early Twitter. Bluesky’s more surgical measures to avoid unwanted virality (the ability to detach your own posts from quote-tweets, and the “nuclear block”) reduce harm while permitting wider conversations.
But more generally, Mastodon culture has taken a scolding, censorious tone. The platform offers a general and open-ended “content warning” infrastructure…meaning that every post can be criticized for not offering enough (or the right) warnings. Both the instance/federated feeds mentioned above and feeds for every hashtag have become curation battlegrounds, with “that content doesn’t interest me; stop posting it” not just a normal but a respected view on Mastodon. And the general “we want a space where we, unlike Facebook and Twitter, can punish Nazis” origins of Mastodon have turned a lot of “political discourse” on the platform into a childish game of virtue-signalling one-upsmanship. It is difficult to imagine any of the substantive discussions of the Gaza war that happen on Bluesky surviving on Mastodon.
Maybe that’s all fine. I’m sure there are plenty of people who just want a comfortable space where enforcing their bubble is easy; where the focus is on smaller communities; where the default is not to see things. The fact that I have concluded that Mastodon is not for me—and that I’m confident it will never be for as many people as Twitter or Bluesky—does not mean it’s not for anyone.
So Bluesky’s great, right?
I really enjoy Bluesky. It offers much of the best of Twitter: with a well-curated set of follows (and a chronological, not algorithmic timeline), I get to hear directly from a lot of true experts commenting in real time on current events. But I see absolutely no reason to expect the platform to avoid the problems that Twitter encountered as it grew (and Mastodon fostered as it failed to grow). Its own “federated protocol”—literally the entire reason it was built, and the main/only technical pitch in its early days—is totally irrelevant. And the platform’s main “we’re not like Twitter” features, the “nuclear block” that deletes all (direct) interactions retroactively and its support for blocklists, have led to a “block first, block often” culture that certainly reduces discomfort but also enshrines it as the most echo-chambery of the platforms, even compared with Mastodon. I’d argue that Bluesky has avoided the rancor of late-days Twitter moderation mainly because it hasn’t reached anything like the size and diversity of Twitter, and consequently doesn’t have the cultural, political, and economic significance for people to work all that hard at ruining it. We’ll see.
Footnotes:
-
I find the comparisons with blockchain particularly interesting, since blockchain addresses the lack of a source of truth directly, at the cost of needing to distribute all data everywhere. Blockchain is wildly inefficient and might never achieve the “nonfunctional requirements” required for its ambitions. It does manage its most basic functional requirements, however, which is more than I can say for Mastodon. ↩
-
I am also extremely critical of Bluesky’s DM implementation, which not only lacks end-to-end encryption, but (at the time of release, at least) did not even encrypt private messages at rest. I consider the former to be table stakes in the 2020s, but leaving ostensibly private user data in the clear such that any employee doing routine maintenance tasks can trivially read it falls well short of industry best practices. I consider these glaring oversights indicative of an unserious privacy culture at Bluesky, yet still nothing like as absurd as Mastodon’s private-mention insanity. ↩
-
“My instance has the correct moderation policy and I will de-federate from instances that have different policies” is a common sentiment, and given that even the largest Mastodon instances tend to be run by ideologues with less-than-entirely-professional temperaments inter-instance politics resemble middle-school drama. My first personal Mastodon account was on the masthead.social instance (chosen because several writers I followed on Twitter migrated there), but apparently its very open speech policy led to an association with Nazis (or something) and many other instances blocked it. Which I only noticed because my feed got sparser and sparser. That instance appears to be dead; cf my concerns that you can’t migrate your account away from dead instances. ↩
-
An amusing update from 24 hours after this was posted: the admin of mas.to has quietly shadow-banned my personal Mastodon account (hosted on mastodon.social) from that instance. This is the level of professionalism one can expect from content moderators on the fediverse’s largest instances in 2025. As petty and vengeful as Musk’s X. ↩
-
This is in fact the issue that led to the death of my solar bots: on a server with 100,000 users, 100 bots each posting once a day were deemed to be polluting the instance feed of everybody’s posts. I have neither respect nor patience for such idiocy. ↩
-
The administrator of mas.to, one of the largest Mastodon instances, clearly didn’t, and possibly still doesn’t, understand this. Which says a lot about the maturity of the Mastodon ecosystem. ↩