The behavior of hashtags on Mastodon (or in the Fediverse in general) is somewhat complicated to understand. In particular, hashtags can't be used to propagate toots across instances.
To distribute toots more reliably to a group of users, a group handle, for example at a.gup.pe, should be used.
I would have preferred to refer to some existing Mastodon documentation instead of writing this text. Unfortunately, I haven't found anything suitable, especially no official documentation on the behavior of hashtags. If anyone has a suitable link, I would appreciate a comment.
I have gathered the information here from my own experience and various discussions on the web. If there are any errors or omissions, I would also appreciate a comment.
The information here is as of April 2025. Mastodon's behavior could change in the future.
Now to the actual topic.
If you are following a user, this means that toots (original toots and boosts) from this user are
- propagated to your instance and
- displayed in your home feed.
Notes:
- Step 1 is of course only necessary if the user is not on the same instance as you.
- The logic is actually even more complicated, especially for replies and for toots that are not "public". But I can't cover all that here.
If you're following a hashtag, then you will see only those toots with the hashtag, that have somehow reached your instance anyway. That is, step 1 from above is not carried out, but only step 2, if the hashtag has got to your instance for other reasons.
So in a way it is a matter of luck whether you receive a toot with the hashtag.
A toot will reach your instance
- if the author and you are on the same instance,
- or if someone on your instance (e.g. yourself) follows the author or someone who has boosted the toot,
- or if the author directly addresses the toot to someone on your instance by mentioning their handle,
- or if a reply to the toot has already reached your instance.
Hashtags do not cause toot propagation. That would be far too much effort, because every toot with a hashtag would have to be propagated to all other instances. (Or alternatively, each instance would have to know which hashtags are followed by users on all other instances. That would also be too much effort).
A reply reaching an instance, "knows" its predecessor hashtag and "pulls" it along, so that the predecessor can then also be found on the instance. This can happen over several levels.
But a toot does not know its "successors" (i.e. its replies), because they can be floating around anywhere in the Fediverse and a search through the entire Fediverse would again be too much effort.
As mentioned before, hashtags cannot be used to reliably send toots to a group of users on different instances.
Instead, a group could agree that every member follows every other member. However, people often don't want this because they are only interested in certain toots.
A "central" user could also regularly boost all toots on the topic.
- A toot would have to be addressed to this user.
- All group members would have to follow the central user.
This solution has the advantage that not everyone has to follow everyone else, you only have to follow one user. However, it also has disadvantages:
- The "central" user would have to boost reliably.
- Group members may not be interested in everything tooted by the central user.
It is therefore best to automate the "central user". It is a "bot" boosting all the toots addressed to it. Authors must address their toots to the bot, mentioning its handle in the toots. And all group members must follow the bot.
Gargron himself has implemented a boost bot. However:
- It seems to be a bit outdated.
- And you would have to set it up on a server.
- In addition, this boost bot behaves a little differently to what I described above: It reacts to hashtags rather than mentions.
Fortunately there is a service creating such bots automatically: a.gup.pe. When
- authors mention a handle
@[email protected]
in the toots - and group members follow this handle,
then the toots are boosted and propagated as described above.
Particularly comfortable: You need not even explicitly perform an admin step on a.gup.pe to create the group handle. Just use the handle.
Another hint regarding gup.pe groups:
Your mastodon UI only knows about the group members (= followers)
on your mastodon instance.
To see the total number of members/followers,
go to https://a.gup.pe/u/ourGroupName
.
See also this blog post by Raphael Jolivet listing and comparing several group services for the fediverse.
There still seems to be the following problem: If you do not enter the name of the group correctly when you first submit a toot and only correct it in an edit, then the propagation to the group seems not to work.
It is not clear to me, at which level this problem should be fixed: In the ActivityPub protocol, in the Mastodon server code or in the code of a.gup.pe?
(The referenced examples are in German but might be helpful nevertheless.)
The second toot in this thread was not boosted by anyone and therefore initially reached only my instance and the instances of my few followers. Many (probably most) players of the Hangman game didn't get the toot, even if they explicitly searched for the hashtag.
Only when a follow-up toot was boosted, the above toot was propagated as well. But that was already too late for the game round.
(The "side discussions" to the thread linked above have to be opened separately).
As a consequence of the above problems
(and there were probably similar problems earlier in the hashtag history)
the group @[email protected]
was introduced.
In the next Hangman game, however, the second and third toot were not boosted by the group, because the group handle was only corrected by an edit. This can be seen near the bottom of the group feed.
(Off-topic: I find Mastodon feeds much more pleasant to read on phanpy.social than in Mastodon's standard web UI).
There's also this article by Fedi.Tips on groups.