Disclaimer: I like the Fediverse, Lemmy, and the concept of federation, I’ve been here for two years, and I feel grateful towards people working on this platform - devs and admins and mods and everyone else. As such, I hope that what I’m voicing is interpreted as constructive criticism and food for discussion.

TL;DR: I’ll list some issues with Lemmy, how they relate to Reddit, and a few proposals on what should be done to address them.

The issues

When you’re posting/commenting you’re supposed to acknowledge and follow up to three independent sets of rules: of the comm, of the comm’s instance, and of your instance. This is a burden for good users, and yet another excuse for bad users to ignore the rules.

There are also up to three groups of rule enforcers, in any situation: two admin teams and a mod team. If any of those goes rogue (greedy pigboy or powerjanny style), you got a problem.

Usually the ones enforcing the rules - the mods - are the group that, by design, lacks access to user info like IPs. So they either play whack-a-mole with old trolls under new accounts, or they rely on assumptions (i.e. stupidity) to keep control of their comms.

Your feed depends on which instances yours is federated with. So you either deal with the fact that you won’t get content that you’d otherwise want, or you register into multiple instances to check multiple, partially overlapping feeds. One by one.

Federated instances mirroring content from each other causes sync issues (got removed from A, but not B? You’ll still see it in B), storage issues (raising the requirements for people to create their own instances), and it’s a big liability (cue to CP being posted to LW, and every single admin team removing it from their own instances).

The biggest instance (by MAU) is as large as the seven following instances combined. This sort of demographic concentration is bound to defeat the advantages of a federation (sharing the burden, sharing the power) without alleviating its cons (added complexity).

The top 10 instances is mostly populated by general purpose instances, doing redundant efforts to provide the same content to the users.

What do those issues have to do with each other?

Look at Reddit.

  • Users want their own Reddit communities, but they can’t build new “Reddit instances”. So they create their communities as “vassals” (subreddits) of the single Reddit instance.
  • Since you always post in the same Reddit instance as you registered to, there are no federation woes like “I want content from instance A, but I’m in instance B and they don’t federate”, or “admins of my instance vs. admins of the instance where I’m posting”.
  • Reddit cannot rely on other instances to provide content for its users. As such, it hosts all its content in a single, general-purpose instance.

I believe that, once you apply those three aspects of Reddit to a federation, you get the issues that I mentioned.

In other words those issues are born from trying to replicate a non-federation into a federation.

So, what should be done in your opinion?

I’m no coder, nor I want to pretend to be one, and I’m aware that some of those might not be viable. Still, if I had to propose something…

First of all, a change of paradigm: we (users: including mods, admins, developers, everyone) should see Lemmy first and foremost as a federation of forums and advertise it as such. Similarities with Reddit should be only secondary.

People who code in Rust would do an amazing job if they focused on instance creation and management. Ideally, it should be feasible even for a tech-illiterate granny running a potato computer to spin up her own instance.

I think that content mirroring needs to go away, with the users pulling the content straight from the instances where it’s created.

Interface developers should expect users to have 2+ accounts, and to log into all their accounts at the same time. The resulting feed should be a combination of the feed of those instances; handle this through the interface/front-end. And when the user is posting/commenting, ideally they should be able to choose which account to use, on a per-community basis.

Desktop users should be encouraged to migrate from “my instance’s website” to instance-agnostic front-ends, such as Alexandrite and Slemmy. [This doesn’t affect mobile users, I believe.]

We should be contributing more to specific-purpose instances (for example: mander.xyz, ani.social, etc.), at the detriment of general-purpose instances (for example: lemmy.world). Perhaps, at the start even migrate our comms to those instances.

Eventually [in the far, far future] I think that the concept of subreddit-like communities should be deprecated, with communities becoming simple sub-forums of the instance where they’re hosted.

By default, admins should focus mostly on the activity inside their own instances. Let the behaviour of their users in other instances up to those admins; a dog with two owners ends either overfed or starved.

When possible/reasonable, admins should be moderating more communities in their own instances.

  • LvxferreOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    7 months ago

    I do not know if this would work with the ActivityPub, but:

    Let’s say that you have the account user@alpha in instance Alpha. And you want to post in Beta. Both Alpha and Beta federate.

    • As you access Beta, Beta tells your interface “we federate with [list of instances, including Alpha]”.
    • Then as you try to post in Beta, the interface checks if you have an account in any of those instances. You do, user@alpha. Then it asks your permission to use that account in Beta.
    • Then the interface tells Beta “the user wants to log in as user@alpha”.
    • Then Beta contacts Alpha and asks “give me the credentials for user@alpha.” If they’re valid in Alpha, then Beta accepts them.
    • You post in Beta a bit, then log off. Then someone from instance Gamma (federated with Beta) replies to your post.
    • Then Beta sees “there’s a new reply to user@alpha”, and informs Alpha about this new message. It doesn’t send the whole content of the message, only the bare minimum.
    • Then you log in again. Your interface accesses Alpha.
    • Alpha tells your interface about the new message, and your interface retrieves it from Beta.

    So as you can see the interface would play a bigger role, indeed, but it doesn’t need to be its own server. All information about your post is in Beta, and all information about the user is in Alpha.

    [Side note: your comment is exactly the sort of criticism that I was hoping for. Seriously.]