Idiomdrottning’s homepage

Hashtags don’t work well on Fedi

The problem with hashtags is that you’ll only see posts that your instance has stumbled over one way or the other, and promoting hashtags will lead to people getting pushed to fewer and fewer and larger and larger instances.

Don’t worry, there’s a group protocol (called FEP-1b12) that’s gonna work much better with the federated model—there are servers up already but they are a li’l bit buggy still.

So if you want to post to boardgames, you can mention one of the boardgame groups like, and if you want to read about boardgames you can follow that group.

Finding these groups is still a big problem since they’re all on different instances. That’s hopefully going to get easier as this protocol gains traction and more servers start to implement it.

One of the common things new arrivals wanna do on Fedi is find kindred spirits into the same things they are. Especially if it’s not tech stuff. And it’s super difficult and they often bounce off it. Finding groups is difficult but hopefully as time goes by and the culture evolves, it’ll get easier.

Why hashtags don’t federate well

Too wide scope

For a hashtag to work the way some people seem to think they work, the instance needs to have indexed 100% of every post on Fediverse, making it meaningless to be federated in the first place if it’s just gonna be a handful of twitterlike sites mirroring every single post from other. That’s not gonna happen and that wouldn’t scale. That’s how Usenet died.

Too narrow scope

In theory, hashtags could be a good tool for a focused local instance to filter local posts. Like if an Emacs focused instance like, on there I can see how, for them, #Emacs would be useful. But that’s not federated! No one else could post there.

One use for hashtags

Hashtags exist on Fedi because whomever implemented them did not think it through and didn’t realize the drawbacks I’ve brought up in this post. But there’s still a good use for them.

Hashtags are a good tool to organize your own posts, like “I wanna see all of Alice’s posts about knitting”.

It’s just not a very reliable or inclusive tool for community or conversation.


Spark Purcell wrote in, asking:

Some issues with what you posted: “For a hashtag to work the way some people seem to think they work, the instance needs to have indexed 100% of every post on Fediverse, making it meaningless to be federated in the first place if it’s just gonna be a handful of twitterlike sites mirroring every single post from other. That’s not gonna happen and that wouldn’t scale.” Why scale? The “everything must scale” idea is a bullshit capitalist conformist trap. And who defines meaningless?

ActivityPub could handle “lots of users” in one of two ways:

a handful of super mega instances like Gmail and Hotmail that are mirroring each other (and that’s what I would argue is the capitalist conformist trap),


a wider spread of instances of all kinds of sizes; some neighborhood instances, some single-user, some small town, all coexisting with the big ones. And they don’t all need to see all of each other’s posts. Just the relevant posts from the accounts that users are following.

The second is the model that the ActivityPub protocol is setup to support.

But hashtags are currently implemented as if the former model was true. The “Usenet model” where every post is copied to every server which is only feasible if there are only a handful of servers. That’s not good.

Groups, then, work much better. They work like the mailing lists of old. Posts are only copied to the relevant servers because someone on there follows the group (or even just drew in a particular post that they wanted to interact with). This is a much more scalable solution.

“Everything must scale” can mean one of two things.

Either hyper huge instances with tons of Docker Kubernetes load balancers microservices, all kinds of stuff. “Just throw more computers at it” (as if there were no environmental externalities since thanks to our broken economics system, electronics and electricity seems cheaper than labor. That is the world I am arguing against.

Or it can mean protocols that are humble and careful in their resources usage, that are well-designed and ecologically minded. That’s more my speed.

But it’s not that my opinion needs to matter; truth is that the way ActivityPub is designed, it affords the latter (and I’m grateful for that). Smaller instances connected together and only fetching what they know they really need.

Hashtags is an exception to that. Hashtag views can only show posts that the server already knows about. That is really how simplistic their implementation is. That affords completely wrecking the normal ActivityPub model and going back to the Usenet model; and attempts at doing that is already in the wild, most notably with relay servers that copy all posts from one instance to another. (Yes, those really do exist, as reckless and dumb as that sounds.)

And posts that the server does not know about don’t show up on there. If relevant conversations are happening on hashtags, that really punishes users on unconnected/​unmirrored/​smaller instances, leading them to instead migrate to the bigger servers where their posts to the hashtags will be seen.

Taken that to an extreme: everyone needs to be connected to one of a handful of big megainstances, then all the overhead of ActivityPub is just wasted. We might as well be on one server, like Dreamwidth or Lobsters or Vanilla or Discourse or phpBB or Cohost. That’d be a lot cheaper and simpler. That’s why I wrote that in that scenario, the federation overhead would be “meaningless” since it serves no purpose. I don’t argue definitions online but in this particular case, when I wrote “meaningless” I had a meaning in mind, and that meaning was something resource-consuming, high-effort, environmentally wasteful that served no purpose.

Luckily, groups already exists like (and many others) which you can subscribe to and post to instead of using hashtags. The reason I think that’s a better solution is that does see every single post that was posted to that group as long as the server wasn’t banned. It doesn’t just show the posts that the server had already happened to stumble upon.

Ideally future Mastodon clients would make finding posts from groups (and posting to groups) a lot easier than they are now.

Hashtags made sense on Tumblr, Twitter and Livejournal, and on IRC which is where they originated, because the single-instance nature of those platforms made it so that the server could see all the posts and just sort them by the hashtags, but they don’t make sense in a federated environment.