Skip Navigation

Transitioning /r/rust to the Threadiverse

blog.erlend.sh 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 ga...

37
37 comments
  • The problem of which instance to host a community on is a big problem for Lemmy. Grouping is an interesting idea but it causes problems as now there are different mods and admins that control subsets of the community.

    Picking a single "winner" and letting the others wither seems like the right approach and will probably happen naturally but if the original instance ever shuts down or struggles under the load you will have a mess to migrate to a new instance.

    If Lemmy communities were decentralized it would make a huge difference. You could just have a single community but it could survive instances coming and going (as well as many other performance and resiliency benefits). But that would be a huge change to the underlying implementation of communities.

    38
    • The problem of which instance to host a community on is a big problem for Lemmy.

      Seeing the same content posted six times in six communities is a problem. It pollutes the feeds, it fragments the conversation, and prevents the natural death of low-traffic communities.

      11
      • Avoiding showing identical posts to a user separately seems like a very easy problem to solve.

        3
    • I think it probably makes sense to host similarly moderated content together.

      programming content being grouped together makes sense because it’s moderated to a similar extent between languages and communities.

      For example discussions/posts on rust programming and porn are moderated very differently, so they should be on different instances.

      7
    • Yup, I'm actually interested in working on a truly decentralized lemmy. Basically, I want to use IPFS or Iroh to have it completely decentralized across all users' machines.

      However, the big problem remains the same: how does moderation work? With lemmy, you can always go to the instance admin if your mods suck, but if it's completely decentralized, you need some other mechanism. Also with lemmy, if a community starts sucking, there's usually enough redundancy that you can just go to another major instance and find a similar community, but if it's decentralized, I think you'll have the Reddit problem where you'll essentially have to get a large chunk of the community to move if there's an issue.

      So I'm not convinced that decentralization is the right way to go, at least until the problem of moderation is resolved. Maybe I'll try building a decentralized instance, which is largely intended to solve the issue of scaling, but I don't think a decentralized platform would be a good replacement for lemmy.

      5
      • I would also take a look at Matrix. Its rooms are decentralized (although other parts like users are not). It would be an interesting backing protocol for something like Lemmy. You could probably use a model where a community is a room, then posts are references to rooms posted into that room. Comments on posts then occur in the post room.

        how does moderation work?

        I think it works the same. As part of the community configuration you have a list of mods. Those mods can then post messages such as "ban this user" or "remove this post". If these messages are sent by a mod then they are applied by those in the community.

        With lemmy, you can always go to the instance admin if your mods suck, but if it’s completely decentralized, you need some other mechanism.

        I think removing the instance admin is actually a feature. IMHO the community is the mods to some degree. If the mods suck then you can either ask them nicely to transition to a new set of mods or you just start a new community. Basically I don't think it is valuable to add a power above mods, because then what if the instance admins suck? I think part of moving communities away from instances would be removing the power of instance admins. They can still ban communities from their instance, but they have no power over the community itself.

        if a community starts sucking, [...] you can just go to another major instance and find a similar community, but if it’s decentralized, [...] you’ll essentially have to get a large chunk of the community to move...

        I think this is a feature. It is basically democracy for communities. If the community is great then it will gather lots of people and be popular. If it starts sucking then people will leave and find alternatives. It is basically democracy. If there is one "Rust" community with fantastic mods that everyone loves then I don't see it as an issue that there aren't alternatives. But if they start upsetting some subset of the communities you will see alternative communities form and if the majority of people prefer the alternative then it will supplant the "main" community as the new biggest one.

        3
      • Mod actions could be cryptographically signed using a private keys, and the public keys of the mods would be part of each community's metadata, updated in a way that establishes a chain of custody so only existing mods can add new mods. Each instance would independently verify that mod actions come from a legitimate mod. (I think I basically just described an implementation of NTFs representing mod privileges, BTW.)

        0
  • I don't really think it's discussed in this blog post, but maybe some effort should be placed on trying to see if rust-lang.org/community would be willing to link to a chosen instance. reddit has been partially hostile towards communities that have closed or tried to move their community. I also just think it makes sense for rust's governance to manage a community, but, they might just want to link to one instead for now. (until if/when Mastodon and the fediverse is more successful)

    On the website for rust, they do already link to a Forum, a Discord, and a Zulip chat, so maybe they would be willing to list a fediverse community too.

    edit: I just realized the poster is Discourse Staff on rust's forum.

    edit 2: It's not included in the blog post, but I would really like to be able to use rust's domain in the fediverse. ex. user@fediverse.rust-lang.org

    26
    • Yep, there’s a clear avenue here. Discourse (where I no longer work, so I shouldn’t really have that staff title any longer) is also implementing ActivityPub, so the Rust forum will actually be able to subscribe to this hypothetical /rust community as well. We just have to give them a good enough reason to do so, by achieving a modicum of unification through this group-follow proposal.

      Then it’ll be up to the Rust team to decide which particular /rust community on the fediverse they will hook up the official forum to as their trusted gateway into the larger network.

      7
      • Discourse (where I no longer work, so I shouldn’t really have that staff title any longer)

        I understood the title as staff for rust on a discourse instance. It seems like I misinterpreted the rank, and it actually might mean that you were a developer for the Discourse forum software.

        We just have to give them a good enough reason to do so, by achieving a modicum of unification through this group-follow proposal.

        I didn't really read the blog post very closely before commenting. It looks like the concern is more focused on how to create a global name system for communities that users understand. I don't agree that it's an issue for rust, but I do think it's an issue for the fediverse in general. I'll cover both quickly.

        • I don't think it's an issue for rust

        I think programmers likely understand the fediverse really well once they've used it. I am doubtful there are actually problems with programmers finding their communties, and successfully subscribing to them. I think Discord servers are more comparable to communities than subreddits to communities. On Discord, if a server doesn't have a vanity address, it's partially not a problem because users are actively searching out official services. For programmers, if the organization backing rust officially designates an instance, I think programmers will understand it.

        In my other comment on LemmyRS, I actually saw the disorganization of the fediverse as a feature, not an issue.

        • I do think this is an issue for normal users or services

        I don't think users understand it at all. I think it's mostly hopeless to try to explain that this other website that seems similar to their home instance can be followed by returning to their home instance or installing this plugin that will link it for them. I think solving it as a client problem is likely a better approach. It seems like users surprisingly do comprehend how to send and receive emails, but I think there are still user interface problems that need to be solved for the fediverse.

        I think trying to solve it at the federation level is likely a bad idea. In my opinion, it just seems like other federated services, like IRC and email, and even IP systems (IPV4 vs IPV6) have been very resilient to change. Though, I do think it's possible to have changes merged into Lemmy.

        • I view the name system as a feature for rust

        There are multiple reasons, here are some

        • Users on other instances can have their name associated with their organization, ex. president@whitehouse.gov
        • It provides organizations the ability to promote other related communities. I really like that programming.dev controls the local communities on programming.dev, as I'm able to find a bunch of related content all at once instead of having to search it out.
        • It prevents reddit-like problems from happening. No one can censor rust's organization from their own instance, they just can remove it from their competing instance. Defederation isn't really a risk because many instances will stay in federation.
        • rust as an organization is able to moderate and group their communities better.
        • I think it provides more diversity to how clients will change overtime. As an example, on an instance hosted by the rust organization, there could be really good rust language support, because the organization the develops rust cares about the language features on the forum

        (Mastodon created the above clip)

        4
  • The reddit thread is found at: https://www.reddit.com/r/rust/comments/162keij/transitioning_rrust_to_the_threadiverse/

    I assume there will be some discussion there, so go and let them know what you think.

    14
    • I read that thread, and I remembered I was not missing the average level of negativity Reddit has

      5
  • Just pointing out that the pawb.social people are/were also planning on forking Lemmy for similar reasons: https://pawb.social/post/147036 . Not entirely sure how much work has gone into it, but might be worth syncing up with them. Although I'm not sure if it's the "right" thing to do to fork just for ideological reasons, especially since the main lemmy.ml instance seems to be fairly neutral.

    I've been thinking about how a single "community" could exist across multiple instances, especially given that the landscape right now is that communities are basically:

    • Undiscoverable.
    • Hosted on lemmy.world, which is a problem in case something happens to it.
    • Hosted on lemmy.ml, which is a problem given that the community can be a bit trigger happy with defederation.

    Communities following others seems an elegant solution, honestly. Although, I would say that moderators should be able to remove posts of communities they follow, just in case.

    However, something stuck out to me when reading the design discussion:

    Users who post to a community that follows other communities are offered the choice of whether to post directly to the community they're following, or to one of the communities that are followed by that community. They need not post multiple times, because posting to a more 'upstream' community would cause it to be seen by users of that community as well.

    Why not? The lemmy web client at least does a good job at de-duplicating crossposts, and the client used for posting could give you a bullet list of communities you want to send it to. Imagine instances a, b and c where a defederates c, but a also has the largest community for bespoke hatwear or whatever. If you (who is on none of those instances) send your post to just a (because it's the largest), then your content will be unavailable to c. But if you post to both a and c, you reach both communities.

    Another thing that confused me while trying to wrap my head around things is this diagram, which I don't think covers a common case:

    Image

    If a user on b makes a post 1 to the community on c... What happens?

    Option 1:

    • funny@c boosts post 1 as message 2.
    • funny@b is sent 2 and boosts post 1 as message 3.
    • user2@a can see 1 through message 3 because it is posted on b, which they federate with.

    Option 2:

    • funny@c boosts post 1 as message 2.
    • funny@b is sent 2 and boosts post 2 as message 3.
    • user2@a cannot see 2 through message 3 because 2 is on c which they do not federate with.
    13
  • As outline in the blog post, https://lemmyrs.org/ would lend itself best to avoid the case of one big instance de-federating from another.

    Discoverability can be an issue with smaller instances but I'd argue that can be bypassed by simply linking to it from official resources that previously linked to reddit. Same with linking to that instance from Reddit.

    One thing of importance IMO is that should lemmyrs.org be selected as the reddit replacement, there needs to be communication and more importantly help for that instance admin, so that they don't have to carry the weight of supporting one of rust-lang's communication channels.

    12
    • The problem with lemmyrs.org seems to be that it is poorly maintained, still on Lemmy 17.4 and few moderators aso. Programming.dev otoh is very well maintained, well moderated and still not a huge centralized place. It also host many other interesting resources for programmers. Also, the structure of lemmyrs.org with many smaller communities doesn't work really well at the moment, it would require a huge number of users to avoid these communities being ghost towns.

      20
      • In short, running an instance requires quite a bit of work, so having a really small instance might be quiet a challenge. Programming.dev is still niche, but large enough to not be a one man show.

        8
    • I'm biased (I created programming.dev), but I think lemmyrs.org should definitely not be the main site, but that goes for any site with "lemmy" in the name. The entire purpose of federation is that the software doesn't matter. If things go south with lemmy in the future, or people fork it, or just want to migrate to different software you've now completely tied the identity of the site to the software it's running on, which just really seems dumb to me. The reason I chose programming.dev as the name is several reasons.

      • It immediately tells you what the website is about
      • It's easily remembered.
      • It's indicative of what you will find on the website, not just one programming language, but all things programming at all.
      • It's one general concept.
        • It's not extremely specific, which contributes to website 'rot' as only specific users of that specific community will ever use that site. It promotes growth, as almost anyone can find a home on the website. It encourages branching out into different topics, as you might come for Rust, but then find the Kotlin community and think "what's that" and go learn something new.
        • It's not extremely general. For the majority of lemmy sites, you have no clue what kind of communities the site hosts, so you have no reason to choose that instance over any others. For example, lemmy.world, what is it about? What communities are there? Why would I choose lemmy.world over lemmy.ml over shitjustworks (where even do you put the dots there? That has to be the worst named site out of all of them really).
        • There's either no opportunity for growth if you go too specific, or too much opportunity for growth, completely defeating the purpose of federation if you go too general. "Programming" as a concept is plenty large, while not encapsulating the entire world.

      Of course, these are my own opinions, but I did think for a long time about it before settling on the website name, while it seems most server owners did not really think at all about their site names.

      10
  • @erlend_sh I thought the term "Threadiverse" was meant to be "Threads" from Meta. Looking into it, it's an ActivityPub server. I don't like the term Threadiverse, because it is confusing to Threads. Can we call it ActivityPub or Fediverse instead?

    1
You've viewed 37 comments.