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.

  • Jeena@jemmy.jeena.net
    link
    fedilink
    English
    arrow-up
    13
    ·
    6 months ago

    I think most of the problems you mention I’m mitigating by hosting my own instance. And that makes me to see lemmy as a set of forums instead of a reddit alternative like you propose.

    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 would rewrite the second sentence into “As such, content it doesn’t like is not possible to be hosted on their single, general-purpose instance.”

    People who code in Rust would do an amazing job if they focused on instance creation and management.

    Instance creation and management does not require coding skills. It’s a very different skill set, one of system administration and web hosting.

    Your feed depends on which instances yours is federated with

    I think it’s the other way around, your feed depends on which instances yours is not defederated with. You can always kick in the federation with an instance by subscribing to their communities and then see all of those.

    Interface developers should expect users to have 2+ accounts

    That is just a ugly workaround, I hope we can come up with something better.

    • LvxferreOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      6 months ago

      It’s interesting how, by hosting your own instance, your view over Lemmy changes. I hope that self-hosters like you become more common.

      I would rewrite the second sentence into “As such, content it doesn’t like is not possible to be hosted on their single, general-purpose instance.”

      Or rather, “content not found in their single instance is not present in Reddit as a whole at all”.

      That’s the point here - it’s true for Reddit but false for Lemmy, as content available in one instance doesn’t need to be hosted yet again in another.

      Instance creation and management does not require coding skills. It’s a very different skill set, one of system administration and web hosting.

      I phrased it poorly. What I tried to convey is that easier instance creation and management should be a priority for coders, so other people have an easier time hosting/managing their Lemmy instances.

      That [interface devs should expect users to have 2+ accounts] is just a ugly workaround, I hope we can come up with something better.

      Ugly workaround or not, I believe that this would be still sensible given the current state of Lemmy. Because when people want content from non-federated instances, here are their current solutions:

      • Register on both, and keep two separated and partially overlapping feeds. It’s a bother, and eventually they will ditch the smaller feed.
      • Look for an instance that happens to federate with both, and register there. That may or may not federate with a fourth instance with desirable content.
      • Register on one and give up the other. Usually the one getting the short end of the stick is single-purpose, smaller, or more careful on whom they federate with.

      So the current state of the things actively encourages you to hop into big, general-purpose instances. That is bad for the federation, and it aggravates the “three groups to rule you, three sets of rules to follow” problem.

      Do you happen to have an alternative for this idea? Preferably, one that would work with the Lemmyverse now?

      • Jeena@jemmy.jeena.net
        link
        fedilink
        English
        arrow-up
        6
        ·
        6 months ago

        Alternative would be that defederation happens on user- not admin level, which we’re getting closer to with 0.19 where users can block instances and don’t need to rely on the admin. This hopefully will lower the need for admins to defederate so many instances them selves.

        • LvxferreOP
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          6 months ago

          It might reduce the problem but I don’t think that’ll solve it, as in some situations instances will still defed each other. For example, where an admin says “users from that instance break my rules, I don’t want to deal with it, defed time”.

      • Die4Ever@programming.dev
        link
        fedilink
        English
        arrow-up
        3
        arrow-down
        2
        ·
        edit-2
        6 months ago

        Or rather, “content not found in their single instance is not present in Reddit as a whole at all”.

        That’s the point here - it’s true for Reddit but false for Lemmy, as content available in one instance doesn’t need to be hosted yet again in another.

        “Content not found in lemmy.ml’s single instance is not present in lemmy.ml as a whole at all”

        It’s not like Reddit represents the entire Internet, IDK why you’re giving them special treatment to exclude content without criticism.

        But we are working towards more tools that will allow for defederation to be less needed and hopefully just a last resort. Remember Lemmy is still alpha software.

        I do think we need defederation to be separate for communities, posts from users, and comments from users. I could see it being useful to allow the communities and posts from and instance and only banning their comments. Or have default ban lists (of instances, communities, users, posts from instances, comments from instances, etc) that the admins set and users inherit from but can customize personally.

        • LvxferreOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          6 months ago

          “Content not found in lemmy.ml’s single instance is not present in lemmy.ml as a whole at all”

          A more accurate equivalence would be “Content not found in the lemmy.ml instance might be found elsewhere in Lemmy.” I’m talking about the federation vs. the lack of.

          It’s not like Reddit represents the entire Internet, IDK why you’re giving them special treatment to exclude content without criticism.

          I did not claim (or even imply) that “Reddit represents the whole internet”. And I am not “giving them special treatment to exclude content without criticism”. It is just that this content exclusion and the criticism are not relevant in the context of this discussion.

          I heavily encourage you to re-read the title of the post (just the title is enough), for context, and contrast it with your own comment. Do it. Please.

          • Die4Ever@programming.dev
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            edit-2
            6 months ago

            I’m just saying that Lemmy is a software not a website or service, it’s a bit unfair to assume that everyone running the Lemmy software will host all of the content from different sites, you don’t see this issue with Reddit because no one else is hosting the Reddit software

            It’s something we could improve, but I also think that it’s not right to suggest all content hosted on any Lemmy should be visible on every other Lemmy. I mean the users who enjoy the Beehaw community probably aren’t interested in seeing Hexbear content anyways, so this is actually a good feature for them. Each instance admin should have a target market/demographic that they want to appeal to, so they curate their content to match that for the optimum experience for their users.

            Similarly Reddit users probably wouldn’t like it if all 4chan content was mirrored to Reddit.

            • LvxferreOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              6 months ago

              I’m just saying that Lemmy is a software not a website or service

              That is not even remotely close to what you said, and it boils down to “I assume that you’re an ignorant on what lemmy is”.

              it’s a bit unfair to assume

              Or perhaps the one being an assumer here is you, not me.

              that everyone running the Lemmy software will host all of the content from different sites

              That is not even remotely close to what I said.

              At this rate it’s blatantly obvious that, due to lack of basic reading comprehension, you don’t have much to contribute with this discussion. So I won’t bother myself further with your comments. [Specially given that other users actually voiced relevant criticism against what I said, unlike you.]

  • poVoq@slrpnk.net
    link
    fedilink
    English
    arrow-up
    7
    ·
    6 months ago

    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;

    This can’t possibly work due to two related reasons:

    1. Small instances don’t have enough moderators to deal with a large number of remote users alone.
    2. Only the threat of losing their main account on the home instance is a deterrent for some users to not troll on remote instances.

    I think it should be rather that admins should leave moderation on their own instance mostly to the local community mods and specifically focus on what the users that they are responsible for are doing on remote instances. If admins are unwilling to do that, then this would be grounds for a defederation as this is basically the most important job to build a good reputation of an instance.

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

      That’s why I said “by default” - I’m aware that it would break in some situations.

      That said, your approach would probably work better than mine - it still reduces the “who does what” mess from three to two groups. And it defines clear roles for each group when monitoring user behaviour.

  • Die4Ever@programming.dev
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    6 months ago

    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.

    I think soon you’ll be able to block all the users of an instance but still see the communities from that instance, but yea instance admins should be able to separately choose to defederate the users or the communities

    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).

    I believe v0.19.0 has the option to disable storing remote images and instead proxy them on demand (I think the proxy might also have a temporary cache to help)

    • LvxferreOP
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      6 months ago

      Both are great steps in the right direction, I believe.

      And eventually I think that “A federates with B” should boil down to “you can post in A using a B account”. With the combined feed being handled by the front-end, and all activity in B being hosted by B itself (not just images).

      • MentalEdge@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        6 months ago

        For activity to be as direct as you say, you’d have to break authentication.

        All activity goes through the instance your account is on, because that’s where your account is. That instance then syncs your activity to other relevant instances, which in turn syncs it to yet more instances, if your activity was in a community on that instance and not your own.

        Your suggestion is completely incompatible with the inbox/outbox model of the ActivityPub federation protocol.

        Notifications and mentions would break. How is a reply supposed to get to you if posted in a thread outside your instance, except via your instance?

        The only way things could work the way you suggest, is if every client application was also its own lemmy server, which would be a stupid amount of load to put on phone or any other potential client device.

        • LvxferreOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 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.]

    • LvxferreOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 months ago

      Yeah, it is. Or rather, “what to expect from this text”.

      Still, “TL;DR” is a good way to say “read this if you’re in a hurry and unsure about reading the whole wall of text”.

  • Paragone
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 months ago

    I think that it’s only at the end of what you said, that you punched-right-through the misunderstanding we’ve all been doing, to hit the real truth:

    Each instance should be specialized.

    • culturally ( inclusive, exclusive, this-religion or that-religion, & I’m including antitheism as a religion, tropical-culture ( social-immersion ) or cold-culture ( autonomy/self-sufficiency )
    • politically
    • perhaps linguistically?
    • perhaps regionally

    Then, just have the users specify the language(s) they’re interested-in, and what ranges on the different spectrums that they’re interested-in, and the user-app then connects with all instances which are claiming those settings…


    You know how your body includes immense diversity-of-cells, including pathogen-cells, but it *only allows cells to “speak”/express when they’re in the proper place ( within their own organ ), and are of the right kind ( so pathogens are censored, outright )?

    It does organize cell-types into organ-systems, though…

    I think the fediverse needs to do the same thing, but with people.

    Let the organization-into-types happen, & let types connect-with or block-out other specific types.


    There still need to be general instances, for instance Lemmy.ca cannot disinclude stuff happening in Canada, just because it’s happening in French, or just because it’s happening in the maritimes, or just because it’s happening above the Arctic circle ( 66.5 degrees, iirc, North )…

    So, both general instances & specialized instances need to exist,

    but they need to specialize in some way, in order to cut-down on the redundancy…


    I’ve wondered why apps won’t mix-together same-domain ones, like

    Science@mander.xyz

    Science@lemmy.ml

    Science@lemmy.the-moon ( or wherever )

    and just have 'em all mixed-together in one’s view of the Science community, see?

    It’d let people post where they are, yet reading them could happen in a saner way…

    ( iow, it is an assumption that communities need be segregated…

    For posting-to, yes, but for reading-from, no, actually! )


    Good points, you make, and much food-for-thunkening…

    _ /\ _

    • LvxferreOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 months ago

      I’ve wondered why apps won’t mix-together same-domain ones, like

      The “core” of your idea (comms about the same topic being merged for visualisation) could work, but we can’t rely solely on the name of the comm. Made up example:

      Those three should not be merged, even if the name is the same and it makes sense for all those comms.

      On general instances: I do agree that they should play some role in Lemmy, just not the main role here. They’re great for things that won’t fit elsewhere, but currently they concentrate most of the activity.