Rather than communities being hosted by an instance, they should function like hashtags, where each instance hosts posts to that community that originate from their instance, and users viewing the community see the aggregate of all of these. Let me explain.

Currently, communities are created and hosted on a single instance, and are moderated by moderators on that instance. This is generally fine, but it has some undesirable effects:

  • Multiple communities exist for the same topics on different instances, which results in fractured discussions and duplicated posts (as people cross-post the same content to each of them).
  • One moderation team is responsible for all content on that community, meaning that if the moderation team is biased, they can effectively stifle discussion about certain topics.
  • If an instance goes down, even temporarily, all of its communities go down with it.
  • Larger instances tend to edge out similar communities on other instances, which just results in slow consolidation into e.g. lemmy.ml and lemmy.world. This, in turn, puts more strain on their servers and can have performance impact.

I’m proposing a new way of handling this:

  • Rather than visiting a specific community, e.g. worldnews@lemmy.world, you could simply visit the community name, like a hashtag. This is, functionally, the same as visiting that community on your own local instance: [yourinstance]/c/worldnews
    • You’d see posts from all instances (that your instance is aware of), from their individual /worldnews communities, in a single feed.
    • If you create a new post, it would originate from your instance (which effectively would create that community on your instance, if it didn’t previously exist).
    • Other users on other instances would, similarly, see your post in their feed for that “meta community”.
  • Moderation is handled by each instance’s version of that community separately.
    • An instance’s moderators have full moderation rights over all posts, but those moderator actions only apply to that instance’s view of the community.
      • If a post that was posted on lemmy.ml is deleted by a moderator on e.g. lemmy.world, a user viewing the community from lemmy.ml could still see it (unless their moderators had also deleted the post).
      • If a post is deleted by moderators on the instance it was created on, it is effectively deleted for everyone, regardless of instance.
      • This applies to all moderator actions. Banning a user from a community stops them from posting to that instance’s version of the community, and stops their posts from showing up to users viewing the community through that instance.
      • Instances with different worldviews and posting guidelines can co-exist; moderators can curate the view that appears to users on their instance. A user who disagreed with moderator actions could view the community via a different instance instead.
  • Users could still visit the community through another instance, as we do now - in this case, [yourinstance]/c/worldnews@lemmy.world, for example.
    • In this case, you’d see lemmy.world’s “view” of the community, including all of their moderator actions.

The benefit is that communities become decentralized, which is more in line with (my understanding of) the purpose of the fediverse. It stops an instance from becoming large enough to direct discussion on a topic, stops community fragmentation due to multiple versions of the community existing across multiple instances, and makes it easier for smaller communities to pop up (since discoverability is easier - you don’t have to know where a community is hosted, you just need to know the community name, or be able to reasonably guess it. You don’t need to know that a community for e.g. linux exists or where it is, you just need to visit [yourinstance]/c/linux and you’ll see posts.

If an instance wanted to have their own personal version of a community, they could either use a different tag (e.g. world_news instead of worldnews), or, one could choose to view only local posts.

Go ahead, tear me apart and tell me why this is a terrible idea.

  • KoboldCoterie@pawb.socialOP
    link
    fedilink
    English
    arrow-up
    8
    ·
    3 months ago

    Your proposal seems to target the same issues as with multi-community support https://github.com/LemmyNet/lemmy/issues/818, which just got 6000€ funding from NLnet. Which seems to be a cleaner way of achieving the same goal.

    That’s great, maybe it’s (or will at some point in the future be) a non-issue, then. (For what it’s worth I did search for similar things before posting this, but apparently didn’t hit on the right search terms.)

    Some suggested points are also against ActivityPub standard.

    I’m not familiar enough with the intricacies of ActivityPub to be able to comment on that; this is obviously not a set-in-stone implementation, and it sounds like some version of the underlying idea is possible, judging by the above.