No, Hashtags Are Not Groups

On the surface, these two things seem really similar, but they're totally different.

No, Hashtags Are Not Groups

In any social network, there is a basic problem: how do I share what I care about with other people, and how can I find the good stuff that interests me? It's big enough of a challenge in centralized social networks with hundreds of thousands or even millions of users. Unfortunately, there are very real limitations in federated systems.

Over the years, people on the fediverse have advocated using hashtags as a tool for group communication, in lieu of a proper federated groups feature. It's a trend that goes back all the way to the early days of Diaspora.

If you squint, the two seem to be awfully similar, but they work in fundamentally different ways. Every now and then, somebody on Fedi has the brilliant idea of using hashtags for group communication, without realizing why it's a terrible solution. Let's get into the details and demystify things once and for all.

How Tags Work

Those networks have a pretty decent solution: let users add metadata about their topic of choice. This is usually done in two ways: hashtags, and keyword matching.

In the first example, users deliberately add posts to an index, which offers a stream for other people to check out. This is a fairly straightforward mechanism for discovery, in that the content listed inside matches the tag being used.

Sometimes, a service will go on to connect several tags together under a unified topic, and recommend posts to people that interact a lot to a related term: maybe the person who likes #cats might be interested in #kittens? This approach can help people drill down from a more generic term to something more specific to what they're looking for.

Keyword Matching works in a somewhat similar way to what's being described, but with full-text search. Instead of a bunch of posts being indexed together by a tag, this is simply a query checking all of the posts a server knows about containing a given keyword. This method has become more prevalent over the last few years, and offers a means of discovery for statuses that don't have their important words tagged.

Shortcomings With Federation

The big thing to remember is that these solutions are most effective in centralized networks, where a server might have hundreds of thousands or even millions of people. After all, social networking companies collect all this data and store it for years and years. Making content easy to discover is part of their business, so long as it keeps people on their network and increases engagement.

Two different instances, same hashtag

With federated systems, there's a bit of a breakdown. While tagging works in a very similar way to traditional networks, your local instance is only able to share what it knows about. Two different instances could have wildly different results for the same hashtag, because they might federate with completely separate collections of other servers.

This might be fine for a bunch of people whose social graph is a closed circle, but it falls short of a community that someone can join, get updates from, and read through post history.

How Federated Groups Work

The topography of groups differs from hashtags in a few key ways. Namely: they are a distinct object representing a relationship between a Group Actor, and the subscribers that are a part of it.

A development screenshot of Groups in Pixelfed, courtesy of Dansup

Typically, a Group Actor has a designated user acting as an admin or moderator. These people can adjust memberships, decide whether a group allows people to join, and sets a default privacy level for all posts made within the group.

When a post is made towards a Group Actor, that Actor performs an `Announcement` action, which pushes the status to all subscribers. In most of the implementations I know about, this is done either by mentioning the Group Actor itself (@Group) using a bang tag (!Group) or posting on the Group's wall, if it has one.

So, to summarize...a hashtag:

  • Is an index of posts about a specific term
  • Usually is contained somewhere within the post itself
  • The results of which are derived by what a server knows about, which can vary
  • Allows anybody to post anything without any real sense of barriers beyond instance-level moderation.

Meanwhile, a Federated Group:

  • Is a relay mechanism handled by an Actor and the people subscribed to it.
  • Barring network failures, all members should be able to receive (or, failing that, fetch) all posts relayed by the Group Actor
  • Typically has a notion of membership and moderation