The pattern is always the same:
- Someone passionate creates a community
- Early members are deeply invested — high-quality discussions, strong norms
- Community grows, hits the front page / “all”
- New users flood in, post memes, low-effort content, drive-by hot takes
- Old-timers get drowned out
- 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_attimestamp - 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.
Given things like this comment about how things were better in the 00s because each community had its place, I’d surmise the problem is here:
3. Community grows, hits the front page / “all”Prevent the community from getting “broadcasted”, or filter it somehow via invites or probation period systems, and you remove much of the issue of normies influx.Strong community norms matter more than clever ranking algorithms, in my experience.
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…
The only important disadvantages are palliated with shared identities, something like OAuth which has been in existence since Internet Forever. But yes, back then when each place had its own… well, place, things were better.
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.
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.
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.
Anything that involves more than a few hundred people goes bad. So create a new community every time you hit a certain criteria.
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.
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.
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.
Implementation wise, I think it would be like tagging. See how many people tag the post as what
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.
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.
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.
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.
I’d say it’s similar to applauding or booing someone who’s addressing a crowd.
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.
Then you have no content, no reason to use, no network effects. People get bored and leave
Right. On-line communities that work well are effectively impossible.
I’m starting to wonder if “online community” is a contradiction in terms.
Does this just create a gerontocracy where old members gatekeep forever?
I don’t think it determines a gerontocracy (do people really care about upvotes?) and I don’t think it solves the problem you’re worried about either.
How do you handle the first 30 days when no one has much weight?
You show upvotes as a %, so if a post has +.01/-0 it’s still 100% upvoted.
Would this actually prevent the decay, or just slow it down? Is there a simpler/better mechanism I’m missing?
In your scenario, “hardcore” members leave because the signal/noise ratio is so low that the community is not worth following anymore.
That has nothing to do with upvotes and all to do with mods failing to take down meme posts (assuming members don’t like memes).
A community is its mods: if they allow low-effort posts (without meaning to) they are not doing their job properly, and that’s probably due to the job being too difficult and/or requiring too much effort.
You could look into allowing older members to help moderate, or maybe into allowing mods to flag “trusted” users whose downvotes (possibly unbeknown to the users themself) will result in posts being taken down “for review”, or otherwise figure out some other way to help mods out, both when making up the rules (that too takes a lot of effort!) and when moderating posts/comments.
A lemmy/reddit-style community is its mods. Think of how to help them be effective.
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.
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
No /all feed?
Your ideas, and some in this thread are quite neat.
One thing to bear in mind when working with systems is that you need to use the right tool for the right problem, and to use people tools for people problems and technical tools for technical problems.
This is a people problem.
One of the things that have been successful is branching communities; a good example on lemmy is linux.
There are communities specifically for linux shitposts and memes and easy communication. There are ones for news. There are ones for noobs. And there are ones for discussion of linux in general.
This way, you have easy shit that doesn’t drown out the main idea, while still feeding back into and out of the main idea.
However, this can lead to mod burnout if too many people leak into the wrong area with the wrong posts.
Something that might work nicely is to allow the user to set up ratios of how often they want to see stuff from whichever theme/variation on that theme. 30% news, 20% memes, 50% general discussion.
Or they can set it to 90% memes and 10% general discussion, and see stuff that’s different.
I’m not saying this to be discouraging, but the more complicated you make it, the more likely it will fail.
If you don’t want an online community to degenerate over time, then pick a very small time scale to measure (ex: 10 days) or choose easy to measure but ultimately worthless metrics to measure it (ex: # of words in posts that aren’t slang). The fact is, long term communities change over time, and the overwhelming majority of the time, those changes can and are regarded as degenerating.
A lot of the things are you suggest have the common pitfall of disincentivizing new users. The more hoops and the less reward people get, particularly when some of the hoops feel punitive, the more likely you are to deter new users and less likely you are to cultivate the future foundations of your community.
Lemmy, and it’s not even all that difficult sign-up hoops, are a perfect example. The place has grown a bit. It would be hard to convince me that there’s been no degeneration. We pick up the ones that Reddit rejected for basically being the worst of the worst along side the small number of decent users who just happen to have a burning dispassion for Reddit. And even so, this place has really just moved closer and closer to being what Reddit used to be – so, hard to say that’s not degenerating a bit compared to the happy fun nice pleasant place it was in the early days when I first joined.
Okay, that rant aside, the other thing I want to say is that a lot of these suggestions you’ve made and a lot of the suggestions I’ve seen in the comments: They sound good in theory, but they pretty much only work in a vacuum. If there were no real “competition”, no other communities of merit, they’d probably work out alright. But in reality, people have lots of options. You have to work extra hard to incentivize them to come and stay AND you have to avoid all the traps, nuances, etc that are inherent to this kind of thing. It’s a very fine, tricky line that pretty much nobody succeeds with long term. Not because they haven’t tried new and inventive things.
And so that I’m not just the naysayer doomsday poopoohead: If you really want to make this work, you’d have to keep a small, well-curated community expertly moderated by one or two extremely prescient moderators with super well defined guidelines and who are in total agreement. Basically unicorns, but if at least one unicorn existed. So, it’s a lot of work, doesn’t rely on complicated procedural / algorithmic gimmicks and it’s not really scalable – but technically doable. I’ve seen it done. Not truly long term, because moderators burn out and then things degenerate.
OOPS: One more addition here – The other pitfall is that communities have to change or be open to change over time. If they don’t or can’t, they stagnate, and rot. Basically, they degenerate anyway.
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.






