The pattern is always the same:

  1. Someone passionate creates a community
  2. Early members are deeply invested — high-quality discussions, strong norms
  3. Community grows, hits the front page / “all”
  4. New users flood in, post memes, low-effort content, drive-by hot takes
  5. Old-timers get drowned out
  6. Mods either burn out and quit, or become dictators ruling their own fiefdom

Reddit’s model accelerates this. Any subreddit that gets popular enough hits the All feed, and at that point the incentives shift from “quality contribution” to “what gets upvotes from the broadest audience.” The people who built the community lose control of it.

I’m working on a social platform and I’m trying to design communities that don’t go through this lifecycle. This is what I have in mind right now. A user’s voting power within a community is proportional to their tenure in that specific community. So if someone’s been there for 2 years, their vote counts more than someone who joined yesterday. No matter how many new users show up, they can’t swing the community away from the people who built it.

The weighting wouldn’t be dramatic, maybe a logarithmic curve where the first month gives you baseline power and it grows slowly over years. The goal isn’t to create an aristocracy, just to make sure the signal from committed members isn’t buried by a flash mob.

Implementation-wise I’m thinking:

  • Each community membership has a joined_at timestamp
  • When scoring a post within that community’s feed, each boost/vote is multiplied by log2(days_since_join + 1) / log2(30) — so 1 day = 0.05x, 30 days = 1x, 1 year = ~1.7x, 5 years = ~2.1x
  • The algorithm still surfaces new content to everyone, but the ranking is weighted toward longer-tenured members’ tastes
  • Also considering: a slow-boot period where new members’ posts are held for review by existing members (like a probation phase)

But I’m second-guessing myself. Some concerns:

  • Does this just create a gerontocracy where old members gatekeep forever?
  • How do you handle the first 30 days when no one has much weight?
  • Would this actually prevent the decay, or just slow it down?
  • Is there a simpler/better mechanism I’m missing?

Curious what other approaches people have seen work (or fail). Has anyone implemented tenure-weighted voting before?

Edit: I appreciate the suggestions. A few of them actually align with features I’ve already built:

  • Trust graph: The platform already uses directed trust edges, with vouching and inviter accountability (if an invitee misbehaves, the inviter is penalized). I can extend this model from the platform level down to individual communities.

  • Invite-only mode: I already have trust-based monthly invite limits for the whole platform, so adding the same option for communities seems like a natural extension.

  • Slow-boot / probation: This is already in place, new members’ posts are held for curator review before being published.

  • Different interaction types: The system already supports multiple interaction types (like, comment, share, gift, emoji). I’m not sure how to expand these into Slashdot-style categories (e.g. agree/disagree, insightful/funny, quality/shitpost, high/low effort, etc.), but it’s something I’d like to explore.

  • Moderation limits: I like Slashdot’s approach of limiting moderation to prevent burnout. I’m less certain whether meta-moderation would be a good fit here, but I’m open to considering it.

    • CoderSupreme@programming.devOP
      link
      fedilink
      arrow-up
      1
      ·
      36 minutes ago

      I already added community forking but it copies all the users, I’ll have to see how I can make the forker change the spirit of the new community.

  • schnurrito@discuss.tchncs.de
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    5 hours ago

    We had a solution to this problem in the 2000s and early 2010s when we were on topic-specific forums where each (broad) topic was a separate website where you needed a separate account.

    But that had its disadvantages too…

  • jtrek@startrek.website
    link
    fedilink
    arrow-up
    9
    ·
    5 hours ago

    I wouldn’t do it based on join time. Age doesn’t always map to quality, and it might encourage people to make sleeper accounts to age up.

    I would do it based on a graph of trust.

    Let’s say you’re user 0. You trust yourself. You can then invite or vouch for a user. If they misbehave, it should reflect badly on you. If they post good content, you should share some of the glory. If one of those users invites someone, the good and bad flow upstream.

    People no one has vouched for have very little power. You can filter them out with a toggle.

    You’d be able to see the web of behavior. If someone keeps inviting or endorsing assholes, then they’re a problem.

    Endorsing is different than upvote. You can upvote whatever, but endorsing is saying you trust this person and you’re willing to put your own reputation and access on the line.

    Something like that.

    • CoderSupreme@programming.devOP
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      5 hours ago

      Good thinking. The tenure wasn’t gained when idle and was lost at 5% per week after a month of inactivity, but I like using the same trust system I had designed for the platform for each community as well.

  • Ftumch@lemmy.today
    link
    fedilink
    arrow-up
    3
    ·
    5 hours ago

    I think it might help to have different vote types. Instead of up and downvotes there could be things like agree/disagree, insightful, funny, quality shitpost, high/low effort post or things like that. That way people who want to see quality discussion could sort by insightful, while people looking for low effort shitposts or memes could sort by something else.

    • staircase@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 hour ago

      The single vote approach is absolutely awful. Adding nuance is an improvement, but to be honest the whole idea of voting is insane. Imagine doing that to someone talking to you in person. It would be seriously weird at best.

      Voting is a bad system and needs to be dug out from the roots and burned.

      • Ftumch@lemmy.today
        link
        fedilink
        arrow-up
        1
        ·
        57 minutes ago

        I’d say it’s similar to applauding or booing someone who’s addressing a crowd.

    • CoderSupreme@programming.devOP
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      5 hours ago

      I think it might help to have different vote types. Instead of up and downvotes there could be things like agree/disagree, insightful, funny, quality shitpost, high/low effort post or things like that. That way people who want to see quality discussion could sort by insightful, while people looking for low effort shitposts or memes could sort by something else.

      Slashdot moderation system, I like it, I’ll see how it fits.

      • Ftumch@lemmy.today
        link
        fedilink
        arrow-up
        2
        ·
        34 minutes ago

        The comparison to tags got me thinking it might be cool if mods or posters could set custom tags/vote types per community or thread.

        • CoderSupreme@programming.devOP
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          14 minutes ago

          I don’t get it, could you expand on that? The idea I’m getting is something like “flairs” on Reddit that people vote on. Right now I’m thinking since all posts will probably be tagged thanks to booru-style collaborative curation, people could vote on the tags that are subjective to see which tags apply best to the post. Then we could sort based on some of the tags like the ones you mentioned.

          • Ftumch@lemmy.today
            link
            fedilink
            arrow-up
            1
            ·
            2 minutes ago

            For example, an advice community could have a “good answer” vote. Each post in an “Am I the Asshole” community could have a “You’re the Asshole”/“You’re NOT the Asshole” vote. That sort of thing.

  • atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 hours ago

    Invite only or a fee to join. Keep it small. No anonymous accounts.

    Just like in-person clubs.

    Humans aren’t adapted to interacting with thousands of anonymous people at a time. It brings out the worst in people (Gabe’s greater Internet fuckwad theory).

    You can deal with “that jerk” but it’s exponentially harder to deal with dozens or hundreds of jerks in a pile on.

    • queerlilhayseed@piefed.blahaj.zone
      link
      fedilink
      English
      arrow-up
      3
      ·
      5 hours ago

      What makes an account non-anonymous?

      I wouldn’t say there’s no room for non-anonymous services, I run a few of them for my family. But one of the cool things about the internet is that you can talk to people (a lot of people) you would have never interacted with without the internet to facilitate.

      I think the Internet Fuckwad Theory is bunk. There are lots of people on the internet who are fully anonymous and still capable of being chill, empathetic, decent human beings. I would estimate that to be the majority of internet users, the majority of the time. Fuckwaddery just has a tendency to draw attention to itself and strain everyone else’s time and patience. And I think OP is right, I think Fuckwaddery is partially design dependent and that most platforms design for because enragement is engagement. I think it’s highly likely that there’s a forum design out there that mitigates it, even if it doesn’t eliminate it entirely.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 hours ago

        Fuckwaddery just has a tendency to draw attention to itself and strain everyone else’s time and patience.

        Bingo. Like I said - one jerk is something you can deal with. But lets say only a small percentage of any user population are fuckwads. As you add users the number of fuckwads scales up linearly.

        But an individual person does not scale up. It’s still just you. And you’re now dealing with a lot more fuckwads as the community scales up. That’s not tenable. One person even politely pointing out a mistake you’ve made is “a bit annoying but okay”. dozens of people doing it in an asshole way is infuriating.

        I think it’s highly likely that there’s a forum design out there that mitigates it, even if it doesn’t eliminate it entirely.

        Nobody has discovered it yet. And I honestly doubt it’s possible. We’re not made to communicate at such scale.

        • queerlilhayseed@piefed.blahaj.zone
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 hours ago

          Well, we weren’t made to fly over thousands of miles but we figured it out. I think we can figure out how to scale a free, durable, peaceful community to the globe, and I think we have to if we’re ever going to figure out world peace.

          • atzanteol@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 hours ago

            Despite all evidence to the contrary eh?

            Flight is a physics problem. World peace is a human nature problem. And keep in mind that we’ve used flight to wage war more effectively.

            • queerlilhayseed@piefed.blahaj.zone
              link
              fedilink
              English
              arrow-up
              1
              ·
              2 hours ago

              Despite all evidence to the contrary, I still think it’s possible. Or maybe just hope, because I rather think we (the human species) have to if we’re going to survive.

              And, the internet isn’t that old, humanity is still getting acclimated to it. I think there’s still a lot of room for improvement on what the internet is, how it functions, and how to make it work well.

              • atzanteol@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 hour ago

                And, the internet isn’t that old, humanity is still getting acclimated to it. I think there’s still a lot of room for improvement on what the internet is, how it functions, and how to make it work well.

                This is not an “internet problem” it’s a “humanity problem.”

                For 10,000+ years humanity has not been able to solve this problem without the internet. The more people you add to a community the more likely you are to have problems. The internet just makes this happen more easily and across national borders.

  • astronaut_sloth@mander.xyz
    link
    fedilink
    English
    arrow-up
    3
    ·
    5 hours ago

    Honestly, this feels like trying to program ourselves out of a fundamentally social/human issue. I think that the best way to design a strong-lasting platform is to not over-complicate it. I would look to successful forums, those that are still running or ran for many years. How did they maintain their community?

    Ultimately, I suspect that the answer ultimately comes down to the growth curve. Slow and steady growth where new users get assimilated into the platform’s culture is likely how this works.

    I think your logarithmic curve is an interesting idea, and if you do implement it, I’d be interested to see the results. However, I don’t know if it will be enough to “maintain” a community. In fact, you may end up with the opposite problem if the algorithm is successful. You’ll have a community that doesn’t change where the oldest accounts rule.

  • queerlilhayseed@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    5 hours ago

    Instead of an infinite log curve of influence, you could have a probationary “reputation vesting” period. New users with no rep have certain limitations like limited posting or commenting rates, an indicator by their username indicating they’re new to the community, restrictions to certain “newbies allowed” spaces, etc. Once someone reaches the vesting cap, they are a full, regular member, equal to anyone else who has reached the cap.

    That prevents you from developing a gerontocracy / aristocracy where those with the highest tenure get the most weight, and still puts up a soft barrier to new members that hopefully attenuates the flood without completely discouraging new members from participating.

    I’m not sure offhand what the best design for the vesting period would be to accomplish your goals. You’d need a culture of accepting new members who want to meaningfully participate in the group as full and worthy members, and not alienate them from the fully-vested rest of the community, while still offering the community and mods ways to deal with unruly newbies.

    One idea I’ve been kicking around for community design is limiting the number of upvotes each member has per time period. My hypothesis is that it will make people stingier, but hopefully also more thoughtful, with their upvotes, so low-effort, easily consumed content like memes would be less likely to get huge amounts of upvotes compared to longer form / more complex / more thoughtful content. You could tie it to the date of account creation, or you could make upvotes expire for everyone at the end of the week or month, making a kind of artificial upvote party at the end of the period where people might be more relaxed with their upvotes. I think it’d be fun, but I’m not sure my idea of fun translates well to the broader internet community.

    You could also make it so that newbie votes show up differently than vested member votes, and the ratio of newbie:vested votes on a given post could be a useful indicator of who in the community thinks that post is worthy of attention. Highly-newbie-vote posts wouldn’t necessarily be bad, but I imagine they’d be more likely to be low effort compared to posts with a more balanced ratio.

  • Eggymatrix@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    5 hours ago

    Imo the issue is the scope. The best communities online are independent (no reddit or other) forums dedicated to specific things, often moderated by someone payed to do that.

    If your incentive is growth and income and the community’s incentive is pertinence either you or the community will have a problem, unless you understand how to manage that equilibrium.

    The issue imo is not self regulation mechanisms like voting and weights, but law enforcement and responsability towards the main subject and the community

  • Noja@sopuli.xyz
    link
    fedilink
    arrow-up
    1
    ·
    5 hours ago

    Have a mod bot comment, if that gets downvoted too much, delete the post. This filters all the “front page” voters who only upvote based on content and don’t participate in the community.

  • ludrol@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    5 hours ago

    If you have time you could implement an experiment in piefed or lemmy to test how it feels.

    Would this actually prevent the decay, or just slow it down?
    Is there a simpler/better mechanism I’m missing?

    I guess there are sociology books written about it, but I don’t know any.