Writing about open & equitable product development

Transitioning /r/rust to the Threadiverse

Three months ago I submitted a post to the Rust sub-reddit called Building a better /r/rust together. It quickly rose to the top and garnered 230 comments before the sub went dark along with the bulk of mainline Reddit during the blackout protest.

My call-to-action hailed Lemmy as a fitting successor:

I really love the /r/rust community. As a community manager it's my main portal into the latest happenings of the Rust ecosystem from a high-level point of view primarily focused on project updates rather than technical discourse. This is the only Reddit community I engage directly with; my daily fix of the Reddit frontpage happens strictly via login-less browsing on Apollo, which will soon come to an abrupt end.

This moment in time presents a unique opportunity for this space to claim its independence as a wholly community-owned operation.

Soft-forking Lemmy
(...) Given Lemmy's controversial culture, I think it's safest to approach it with a soft-fork mindset. But the degree to which any divergence will actually happen in the code comes down to how amenable the Lemmy team is to upstream changes. I'd love for this to be an exercise in building bridges rather than moats.

In the months since, Lemmy has grown immensely, both in scale and culture:

I'm happy to report that a soft-forking initiative seems completely unwarranted at this time. The Lemmy ecosystem is thriving 🌈

From Age of Coordination:

A month after the Reddit exodus, Gizmodo boldly claimed “Reddit won”, because Reddit is still left standing. Similar stories have been written about Twitter vs Mastodon.

This type of analysis repeatedly fails to recognize two crucial factors:

  1. Platforms die with a whimper, not a bang. Digg, the precursor to Reddit, is still around today, it's just not relevant. You can even visit MySpace right now if you'd like, but you won't. Twitter/X may still be operational, but its status as the internet's public square has long since been lost (not that it ever deserved it).

  2. Twitter and Reddit may have only lost a few million users to Mastodon and Lemmy so far, but these are nation-sized numbers, comparable to what Scandinavia is to the United States of America. The incumbents have allowed the fediverse to reach critical mass. It's only gonna get bigger, but it already works well enough that I've no need for any other social network. It's nicer here.

Charting a path for a federated /rust

During the Reddit blackout, a handful of different alternatives to /r/rust gained traction:

So which one should Reddit migrants move to? This is a common predicament and was the 2nd most upvoted question in the aforementioned AMA. Also discussed recently in We should have something like federated communities.

The problem that needs solving was succinctly put in a discussion on Community Grouping:

As a user, I recently wanted to post to AskLemmy. Almost every single instance has their own separate AskLemmy implementation. Naturally, I'd tend to post to the one with the most users. But inherently, I'm missing the majority of users by only being able to post to one. I.E., I posted to AskLemmy@lemmy.ml (which had 3k users), but by doing that, I'm missing out on the users from lemm.ee, behaw, lemmy.world which in total are far more than 3k.

No one wants to individually subscribe to 5 different versions of AskLemmy, nor do they want to cross post 5 separate times.

This problem will intensify once Groups are supported in Mastodon, Pixelfed and FireFish.

Community Grouping Redux

There are several feature discussions about different forms of community grouping on the Lemmy GitHub. The problem is each discussion has diverged into talking about several distinctly different implementations, making consensus impossible.

To my eye there are three key proposals in play. They are not in opposition to one another and solve different problems.

Client-side group collections

https://github.com/LemmyNet/lemmy/issues/818

This is the type of grouping Redditors will already be familiar with as 'multireddits'. It's simply a mashup of multiple subs into one stream, like so:

https://www.reddit.com/r/NoStupidQuestions+explainlikeimfive

Useful for people who want to curate their own stream-combos, but it doesn't solve for a fragmented Rust stream.

Server-side group syndicates

There's no canonical proposal for this yet, but the general idea is to build some type of consensus mechanism for several subs of a similar flavor to opt into a shared hub. There's a proposal to group by tags, reminiscent of repo tags on GitHub. Another is Sibling Communities.

These are novel ideas worth exploring, but they all present major coordination challenges. The absence of coordination is what brought us to the current state of multiple “competing” Rust subs.

I've talked to some Lemmy-Rust admins and they are in fact eager to coordinate more, but anything that involves advanced administrative procedures is a non-starter.

Group-to-Group following 🌟

At long last, we've arrived at what I firmly believe is the solution for decentralized common-purpose communities like a /rust, /AskFedi or /montreal:

Let ActivityPub groups (Lemmy 'community' or Kbin 'magazine') follow other groups.

The idea appears to have been around for years, but we never had a mainstream use case for it until the threadiverse became a thing. Now we do, and it feels like we're finally about to make use of the untapped superpowers of the ActivityPub protocol! A centralized app like Reddit just couldn't do this.

If groups can opt to effectively federate directly with other groups, they abide by the same network dynamics as the fediverse at large, I.e. cross-network self-moderation by means of (de)federation. No consensus management needed beyond what different instances on the fediverse are already used to, just on a more granular level.

This feature been explained in detail here.

It also exists as a spec draft: FEP-d36d: Sharing Content Across Federated Forums.

And with that, we have a new call-to-action for any fedi-curious Rust developer out there: Implement FEP-d36d for Lemmy. If anyone wants to step up, I recommend centering the discussion about this in the FEP discussion forum where there's less ambiguity about the job to be done, and it'll also be easier to coordinate with parallel implementations in the likes of Kbin.

I can be found on the SocialHub forum, on Mastodon, or on the Discord we originally set up to coordinate 'better /r/rust'. Hopefully there's someone out there who shares my excitement for what can be made possible here!

P.S. Other impactful but less clearly defined Lemmy enhancements include: