The Long Effort to Bring Groups to the Fediverse

In the early days of the network, there was GNU Social. While the software had a number of quirks, one of its most distinctive features was the capability for group messaging. Just like the now-ubiquitous “@” sign, the platform supported a second symbol – the “!” (pronounced bang) tag. It was great: instead of trying to get people to look at a timeline for a hashtag on different serdgling upstart called Diaspora, then again by Mastodon.

Although the group conventions had been carried on by Friendica and its derivatives, their influence over the network was considerably small. As a result, group messaging – a feature the fediverse had as early as 2008 – had been forgotten by most.vers, the group instead acted as a relay, sending one status to everybody in the group, no matter where their server was.

A very old screenshot of a Linux Group on Identi.ca. The image links are broken due to how Archive.org sometimes handles inline images.

But GNU Social was surpassed by other projects – first, by a fledgling upstart called Diaspora, then again by Mastodon. Although the group conventions had been carried on by Friendica and its derivatives, their influence over the network was considerably small. As a result, group messaging – a feature the fediverse had as early as 2009 – had been forgotten by most. Occasionally, users requested to have this feature again on various projects, but were frequently shot down due to the complexity of implementing it in a way that suited them.

Initial Attempts

During the early years of the Diaspora project, a major divergence developed: a lone developer named Pistos had decided to fork the original Diaspora source code, and worked hard to recreate federated groups as he remembered them.

Unfortunately, the Diaspora project rejected his patches, due to incompatibilities over code style and lack of tests. Diaspora was also going through a major rewrite of its frontend at the time, requiring development methods that were vastly different from what Pistos was doing.

Frustrated, Pistos would eventually go on to develop Libertree, and peacefully hang out in the backwaters of the Internet.

Friendica’s Group implementation, called “Forums”

As stated previously, Friendica and its many descendants (Hubzilla, Osada, Zap, and Streams) have natively supported groups for a very long time. The difficulty is that their functionality was pretty much restricted to the protocols their projects used: DFRN, and eventually Zot. Throughout the history of these projects, few other platforms bothered to implement their protocols, instead opting to reverse-engineer Diaspora’s federation protocol, and the OStatus implementation Mastodon was using. Neither of these offered groups.

Recent Developments

The adoption of ActivityPub by Mastodon was a watershed moment for the network. It cannot be understated how big of a deal it was for a new protocol to be adopted by a major player in the fediverse. All of Mastodon’s features and functionality had made a successful jump over from OStatus to ActivityPub.

Over time, other existing platforms also developed their own implementations of the protocol, and ironed out major kinks. In the past, the Free Network had been largely held together using the Diaspora Protocol as glue, but this was eventually phased out in favor of the new protocol.

Example of a group in Guppe. You don’t actually see the group on the site, you basically just follow an account that boosts posts to you.

What ended up happening involved several major strides towards compatability. In 2018 a small project called Guppe was started by the Immers Space team to build external groups as a tool. While simple, it allowed any user with an ActivityPub account to pass messages to everyone else in the group. This was a big step, and went on to influence Friendica’s decisions when developing for compatibility with other platforms.

A community catering to the Fediverse on Lemmy

Possibly the most significant development of Groups so far would be the rise of Lemmy, a community linkthread platform that looks and functions very similarly to Reddit. Due to the ongoing Reddit migration, many new Lemmy instances have popped up, and a second platform called Kbin is compatible on a federation level with it.

The same group, as seen on Kbin.

This shared standard has allowed many people new to the network to join in and interact through shared communities, and could be a huge factor in widespread adoption by other platforms.

Pixelfed is notable because they also are looking at how Lemmy and Kbin implement groups, and intend to take the concept further by accounting for the edge case that Facebook Groups users have come to expect.

Federated Groups are quite challenging to get right.

I'm discussing our impl with @trwnh and there are several aspects and side effects that no other implementation has approached, including:

– Private groups
– Group roles
– Group moderation
– Group fallback delivery
– Group migration
– Group mod logs
– Group admin vs Instance admin ownership

Everyone wants groups, which is understandable.

Nobody wants admins to be able to takeover groups, like Reddit did.

@pixelfed will get Groups right ?

— dansup (@dansup) 2023-06-20T09:46:28.685Z

The Future?

We are very much at a vantage point now where interoperable federated groups are becoming more normal across fediverse platforms. Groups are listed on Mastodon’s roadmap as “in progress”, and it’s likely that Pleroma, Akkoma, CalcKey and others may soon standardize on this feature and its trappings. In fact, an FEP (Fediverse Enhancement Proposal) has already been finalized for Groups due to a detailed collaboration effort. It cannot be understated how big of a deal this is.

Groups have the potential to transform the face of the Fediverse by adding an essential new communication structure to existing platforms, and could give even simple microblogging applications a technical advantage over platforms such as Twitter, which still has no actual group functionality.

Sean Tilley

Sean Tilley has been a part of the federated social web for over 15+ years, starting with his experiences with Identi.ca back in 2008. Sean was involved with the Diaspora project as a Community Manager from 2011 to 2013, and helped the project move to a self-governed model. Since then, Sean has continued to study, discuss, and document the evolution of the space and the new platforms that have risen within it.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button