Yesterday, you probably saw this informal post by one of our head admins (Chris Remington). This post lamented some of the difficulties we’re running into with the site at this point, and what the future might hold for us. This is a more formal post about those difficulties and the way we currently see things.
Up front: we aren’t confident in the continued use of Lemmy. We are working through how best to make the website live up to the vision of our documents—and simply put, the vast majority of the limitations we’re running into are Lemmy’s at this point. An increasing amount of our time is spent trying to work around or against the software to achieve what we want rather than productively building this community. That leaves us with serious questions about our long-term ability to stay on this platform, especially with the lingering prospect of not having the people needed to navigate backend stuff.
Long-time users will no doubt be aware of our advocacy for moderator tools that we think the platform needs (and particularly that we need). Our belief in the importance and necessity of those tools has only hardened with time. Progress of those tools, however—and even organizing work on them—has been pretty much nonexistent outside of our efforts from what we can see.[1] In the three months since we started seriously pushing the ideas we’d like to see, we’re not aware of any of them being seriously considered—much less taken up or on the way to being incorporated into Lemmy.
In fact: even within the framework of Lemmy’s almost nonexistent roadmap and entirely nonexistent timetable on which to expect features it has been made clear to us that improving federation or moderation on the platform are not big priorities.[2] We have implicitly been told that if this part of the software is to improve we will need to organize that from scratch. And we have tried that to be clear. Our proposal is (and has been) paying people bounties for their labor toward implementing these features, in line with paying all labor done on our behalf—but we’ve received mixed messages from the top on whether this would be acceptable. (Unclear guidance and general lack of communication is symptomatic of a lot of our relation with the Lemmy devs in the past few months.)
Things aren’t much better on the non-moderator side of things. The problems with databases are almost too numerous to talk about and even Lemmy’s most ardent supporters recognize this as the biggest issue with the software currently. A complete rewrite is likely the only solution. Technical issues with the codebase are also extensive; we’ve made numerous changes on our side because of that. Many of the things we’re running into have been reported up the chain of command but continue to languish entirely unacknowledged. In some cases bugs, feature requests, and other requests to Lemmy devs have explicitly been blown off—and this is behavior that others have also run into with respect to the project. Only very recently have we seen any overtures at regular communication—and this communication has not hinted at any change in priorities.
All of what was just described has been difficult to get a handle on—and having fewer users, less activity, and more moderators has not done a whole lot to ease that. We honestly find that the more we dig and the more we work to straighten out issues that pop up, the more pop out and the more it feels like Lemmy is structurally unsound for our purposes. (One such example of what we’re working with is provided in the next section.)
In summary: we believe we can either continue to fight the software in basically every way possible, or we can prioritize building the community our documents preach. It is our shared belief that we cannot, in the long-term, do both; in any case, we’re not interested in constantly having to fight for basic priorities—ones we consider extremely beneficial to the health of the overall Lemmy network—or having to unilaterally organize and recruit for their addition to the software. We are hobbyists trying to make a cool space first and foremost, and it’s already a job enough to run the site. We cannot also be surrogates for fixing the software we use.
PenguinCoder: A brief sketch of the technical perspective
I’ve said a few words about this topic already, here and here. Other Beehaw admins have also brought some concerns to the Lemmy devs. Those issues still exist. To be clear: this is a volunteer operation and Lemmy is their software; they have a right to pick and choose what goes into it and what to put a priority on. But we have an obligation to keep users safe and secure, and their priorities increasingly stifle our own.
In the case of this happening for open source projects, the consensus is to make your own fork. But:
The problem with forking Lemmy is in starting from all the bad that is inherently there, and trying to make it better. That is way more work than starting fresh with more developers. IE, not using Rust for a web app and UI, better database queries from the start, better logging/functions from the start; not adding on bandaids. A fork of Lemmy will have all of Lemmy’s problems but now you’re responsible for them instead.
We don’t need a fork, we need a solution.
To give just one painful example of where an upstream solution is sorely needed: the federation, blocking, and/or removal of problem images.
- You post an image to Beehaw.
- Beehaw sends your content out to every other server it’s federated with
- Federated server accepts it (beehaw.org is on their allowlist), or rejects it (beehaw.org is on their denylist)
- If the server accepts it, a copy of your post or comment including the images are now on that receiving server as well as on the server you posted it to. Federation at work.
- Mod on beehaw.org sees your post doesn’t follow the rules. Removes it from beehaw.org. The other instances Beehaw pushed this content to, do not get that notice to remove it. The copy of your content on Beehaw was removed. The copy of your content on other servers was not removed.
- The receiving federated instance needs to manually remove/delete the content from their own server
- For a text post or comment that’s removed, this can be done via the admin/mod tools on that instance
- For a post or comment including a thumbnail, uploaded images, etc; that media content is not removed. It’s not tracked where in Lemmy that content was used at. Admin removal of media commences. This requires backend command line and database access, and takes about a dozen steps per image; sometimes more.
There are dozens of issues—some bigger, some smaller—like this that we have encountered and have either needed to patch ourselves or have reported up the chain without success.
Alternatives and the way forward
If possible the best solution here is to stay on Lemmy—but this is going to require the status quo changing, and we’re unsure of how realistic that is. If we stay on Lemmy, it is probable that we will have to do so by making use of a whitelist.
For the unfamiliar, we currently use a blacklist—by default, we federate with all current and newly-created nodes of the Fediverse unless we explicitly exclude them from interacting with our site. A switch to a whitelist would invert this dynamic: we would not federate with anybody unless we explicitly choose to do so. This has some benefits—maintaining federation in some form; staying on Lemmy; generally causing less entropy than other alternatives, etc. But the drawbacks are also obvious: nearly everything described in this post will continue, blacklist or whitelist, because a huge part of the problem is Lemmy.
Because of that we have discussed almost every conceivable alternative there is to Lemmy. We are interested in the thoughts of this community on platforms you have all used and what our eventual choice is going to be, but we are planning on having more surveys in the future to collect this feedback. We ask that you do not suggest anything to us at this time, and comments with suggestions in this thread will be removed.
As for alternatives we’re seriously considering right now: they’re basically all FOSS; would preserve most aspects of the current experience while giving us less to worry about on the backside of things (and/or lowering the bar for code participation); are pretty much all more mature and feature-rich than Lemmy; and generally seem to avoid the issues we’re talking about at length here. Downsides are varied but the main commonality is lack of federation; entropy in moving; questions of how sustainable they are with our current mod team; and more cosmetic things like customization and modification.
We’re currently investigating the most promising of them in greater depth—but we don’t want to list something and then have to strike it, hence the vagueness. If we make a jump, that will be an informed jump. In any case logistics mean that the timetable here is on the order of months. Don’t expect immediate changes. As things develop, we’ll engage the community on what the path forward is and how to make it as smooth as possible.
Other administrators have probably vocally pushed for these things, but we’re not aware of any public examples we can point to of this taking place. Their advocacy has not produced results that we’re aware of in any case, which is what matters. ↩︎
Perhaps best illustrated by the recent Lemmy dev AMA. We’ll also emphasize that Beehaw’s admin team is not alone in the belief that Lemmy devs do not take mod tools or federation issues particularly seriously. ↩︎
A few high level notes about this post, given some of the discussions and behavior in the informal chat post by Chris the other day:
- We understand this is perhaps the biggest crossroads we’ve hit yet, and a seriously big issue. It’s understandable that you might have strong emotions about the Fediverse as a whole, or the action we are taking as an instance. If you are not from our instance and you come into this thread with a short hostile comment about how we aren’t respecting your views or that we should never have joined the Fediverse in the first place, your comments will be removed and you will be banned.
- Any suggestions for what we should do, that involve actual effort or time, such as finding developers to fix the problems we’ve had should be accompanied with an explanation of how you’re going to be helping. We’ve lodged countless github tickets. We’ve done our due diligence, so please treat this post with good faith.
- Similarly doing nothing more than asking for more details on the technical problems we are struggling with, without a firm grasp of the existing issues with Lemmy or the history of conversations and efforts we’ve put in is not good faith either. We’re not interested in people trying to pull a gotcha moment on us or to make us chase our tails explaining the numerous problems with the platform. If you’re offering your effort or expertise to fix the platform you’re welcome to let us know, but until you’ve either submitted merge requests or put in significant effort (Odo alone has put in hundreds of hours trying to document, open tickets, and code to fix problems) we simply may not have the time to explain everything to you.
- I want to reiterate the final paragraph here in case you missed it - we are not looking to make any changes in the short term. We expect it would be at the minimum several months before we made any decisions on possible solutions to the problems we’ve laid out here.
- Finally, I want to say that I absolutely adore this community and what we’ve all managed to build here and that personally, I really care about all of you. I wish we weren’t here and I wish this wasn’t a problem we are facing. But we are, so please do not hesitate to share your feelings 💜
Similarly doing nothing more than asking for more details on the technical problems we are struggling with, without a firm grasp of the existing issues with Lemmy or the history of conversations and efforts we’ve put in is not good faith either. We’re not interested in people trying to pull a gotcha moment on us or to make us chase our tails explaining the numerous problems with the platform
This is understandable but leaving platform is a big decision and the technical reasons are not really clear. Or at least they are not really crystal clear from the posts I have read. As end users we don’t really have much of a choice except to trust you.
Personally one example I have is the lack of moderation tools. I have read numerous times that it was a problem. But I do not know what it means practically speaking - what is missing exactly.
You do not have to explain it and I am not asking it of you. But I just want to say that I feel like there are details that sound to be very relevant to your future decision but are yet undisclosed. Or maybe I just missed them
Thanks for all the work into making Beehaw what it is today. I joined during the Reddit exile and I’m happy to have found this community. I hope it continues to thrive
I feel the technical reasons are pretty clear. The media example alone is a great one. If someone drops illegal media onto one instance now, every admin has to take a ton of steps to scrub it from their instances. Through no fault of their own!
We hear every instance people say “we need moderation tools.“ Well, we don’t have them. I’m not mad at the developers, it has been a crazy few months and it’s not like any of these people are getting paid to do this. But it doesn’t matter what the intention is. If the tools aren’t there and are needed, eventually something has to give. There is too much burden on the admins of instances as it is. I’m not even talking about the financial side either!
Some of the moderation issues that we’ve talked about in the past are linked in the OP post. I will say that it has only gotten worse over time. I cannot think of a single moderation feature which actually fully works. That is how bad I think things are. They’re all broken in subtle ways. Yes, even reports are broken.
Given that it’s still a newish project I do not find it abnormal to have broken features though I understand that it must be frustrating to have to deal with issues like that.
If a benevolent user were to work on fixing such bugs perhaps the problem would get solved ? Maybe once the new contributors catch up, one of them will make development in that direction ? Or do you believe there is really no hope for the project in that regard ?
Well, under any other circumstances, I would absolutely agree. Many users for other projects do, and have, volunteered their time, money, and blood (both in a metaphorical and a somewhat literal sense) so that a project can survive and live. However, that’s just not the case here.
More then enough end users have tried to make the switch to become engineers, developers, bug hunters, the full works. They have offered up their time, their blood, their money, and their minds trying to help Lemmy get off the problems it currently sits on. There isn’t a bereft amount of people, both experienced and inexperienced, unwilling to help, in fact, there’s probably too many spoons in the pot.
What I’m trying to say is that, it’s not problem with the helpers, it’s a problem with those who need the help, because it appears that those who need the help don’t really want it in the first place at all.
Sorry if I missed it, but do you have a specific example where the proposed help was denied by the maintainers? A case where they clearly acted against it such as a merge request denial, prematurely closing the issue or explicitly telling contributors to not contribute on that?
I see there is an issue here: https://github.com/LemmyNet/lemmy/issues/3275
This issue was too large so lionir asked it to be split and linked two related issues like https://github.com/LemmyNet/lemmy/issues/3662
So far I am not seeing anything like maintainers refusing the help - but perhaps this happened in private side channels or something like that?
I might have missed it too, but I don’t see what’s the core issue. I understand that the lack of moderation tools can be very frustrating, but Lemmy is open source and anyone can do a PR with improvements.
If the devs discard them for no reason or are rude I would understand the “they don’t want any help” argument, but I saw no example.
Creating another social media project is just splitting efforts and I’m not sure if the amount of work is not being underestimated by a big margin.
Given the specifics of Beehaw’s nature I’m surprised it’s not whitelist driven already.
Perhaps there should be some set of common ground rules - an accord of sorts - that sites could sign on to and that would establish your white list.
deleted by creator
Taking up Gaywallet’s offer to share my feelings.
I’m angry. Everywhere I go on the internet, I encounter some form of prejudice and hate. Every social media website that I’ve tried, I’ve had to tolerate intolerance towards marginalized people. Every attempt that I’ve made to speak up about this is met with apathy. You just gotta learn to deal with it.
I’m tired. I’ve joined countless online communities, searching for a place where I can feel at home. I want to find a community where I can share, grow and build. I haven’t found it yet, but Beehaw is the closest thing I have found so far.
I’m hurt. Seeing the reactions to these posts has been both disappointing and reassuring. One of the comments that I found to be hurtful was calling Beehaw a “walled garden”. Walls protect things, you know? It’s hurtful to see this type of labelling and name-calling used to dismiss the very real concerns of real people.
I’m fearful. As a result of all the negativity and toxicity I have encountered, I am afraid to speak up. Every time I make a post or comment, I do so with the expectation that someone will try to find a way to discredit my experiences. I am constantly thinking of ways to defend myself against attacks.
I’m hopeful. From my short time here on Beehaw, I’ve seen some encouraging things. The admins and mods on Beehaw are actively contributing. The posts and comments I have seen from them are thoughtful, sensible and genuine. It’s reassuring to see that they seem to be a good bunch with their priorities in the right place. I look forward to seeing all of the things that Beehaw can achieve with this collective mindset.
As an admin of furry.engineer, pawb.fun, and pawb.social (our lemmy instance) i have to concur. After just a few months, i’m just… tired.
Keeping the hardware happy is easy and fun, but moderation is nearly impossible. Also the waves of reactionary argumentative users from instances with open sign up are getting out of hand.
I’m about ready to switch to whitelist federation personally, but would need to build said whitelist. I will monitor and see where beehaw goes from here, because if our moderation team agrees, we will probably take similar action.
I have no faith in the lemmy devs to take these issues seriously. Has anyone looked at kbin to see what is different in terms of moderation?
My only input is that any potential migration could be called “Bexit”.
The thing is, when Beehaw is no longer in Lemmy, it will be a regular VBulletin, phpBB, Discourse, etc. community. Nothing wrong with that.
The question will be: if the change is made, will the users follow? Because a lot of users in this post https://lemmy.ca/post/4990126 have said that they prefer Beehaw to stay in Lemmy because it is a Reddit alternative. It is big risk.
We are not and never intended to be Reddit or a Reddit alternative. This is clearly laid out in our docs. We are trying to do something fundamentally different, and are not interested in users who just want Reddit but elsewhere.
Well, we have stated that we are not trying to be reddit. There are more reddit-like alternatives than the more traditional forums that are possibilities.
We entirely expect that if we move away from Lemmy, we will lose people. Will that be for the better or the worse? Nobody can know as nobody can predict that future. It’s a very difficult position.
I am so tempted to say F-it and just start my own ActivityPub Fediverse project to replace Lemmy. It’s such a daunting commitment, though, and we each have our lives to live. I wish the admins of Beehaw all the luck and success in what they’re having to wrangle with. It’s too bad the Lemmy maintainers are so unwilling to work toward fixing the clear major pain points of the software.
How hard would it be to fork the Lemmy code (+ perhaps one client), at the cost of breaking compatibility?
You should read the OP here. Forking the Lemmy code would do exactly what they say: you get all the garbage/baggage, and now you own it. If I were to write an ActivityPub Fediverse Reddit-like web-app, it wouldn’t be in Rust.
I’ve been thinking about this as well. I’ve been evaluating crystal, lua, js, or python as potential implementation languages
As someone who’s very proficient in Rust, I actually think it’s the perfect language for a backend API. But the Lemmy code (from my tbh limited experience with it) seems quite verbose and cumbersome for the amount of features it needs to support. I have also been tempted by the thought of a Rust rewrite. The features needed honestly don’t seem that complicated.
Having tried to do this in Rust, the ActivityPub protocol is not very Rust-friendly. There’s a lot of weirdness, like how objects can have multiple types at once (aka
@type
is an array) and how JSON-LD allows for basically any format to be passed as long as an appropriate context is passed (and thejson-ld
library has a lot of limitations from my experience including lack ofserde
support and no framing). I’ve tried looking at how the ActivityPub implementation Lemmy uses works, but from what I can see it just ignores these problems entirely, which at least seems to be working out for them right now.Thinking about it more, I’m convinced JSON-LD’s completely dynamic format is what’s making this so difficult.
Computer Science student here.
Forking Lemmy does fork its bad habits but doing so would at least give us the option of making direct improvements to the mod tools.
From what I’ve read, causing deleted content to get deleted quickly is a smaller change. Advertising that shortened deletion delay and giving the admins a “these keep our shit, yeet their federation privileges but check again every day and notify me when that changes” script wouldn’t be too hard to create.
We might even be better off ignoring the Lemmy codebase for mod tools altogether. If we outright ignore cross-platform compatibility, we can make a mod tools API independent of Lemmy-proper that does what’s needed and a JavaScript-controlled interface to sit on top or a separate toolset altogether.
I’m pretty busy right now but I rely on Beehaw for decent social media. I’d be willing to put a bit of time into it.
It is disappointing how unconcerned the Lemmy devs are with the lack of mod tools on this platform. Honestly if Beehaw decides to move away from Lemmy, I’ll probably follow and stop using Lemmy altogether. Beehaw’s all that’s really keeping me here.
Not prioritizing moderation tools doesn’t make sense to me, either. A database that’s crummy (but functional) is an important issue, but one that seems like it can wait. Moderation tools cannot wait.
Community building is what Lemmy is supposed to be for, right? Any instance, regardless of its goals or ideology, needs good moderation in order to thrive (what’s considered “good moderation” will vary widely from instance to instance, and that’s fine. You know what I mean, though). Even an instance that prides itself on minimal moderation needs powerful, flexible mod tools to deal with things like spam and cp.
The less obvious technical parts are important, of course, but users don’t love or hate an instance because of the back end. They care about how it’s moderated.
Bear in mind that I know nothing about programming, moderating, etc. Take that into account when considering my comment.
Isn’t Lemmy open source, though? Someone could step in and implement mod tools
An outsider point of view
Lemmy started as a passion project and been growing slowly over years and then out of nowhere a small group of developers had to not only adjust to new influx of people, but also a barrage of ideas, suggestions and comments on what they should prioritize. I’m not sure how much experience different people here have with open source development, but the amount of changes in 3 months Lemmy developers managed to do is impressive to say the least. And there will never be open source project that manages to satisfy everyone.
Fundamentally people assume that with open source project all ideas will get implemented either by developers or if someone does the work and makes a pull request. But like with every other project the maintainers are allowed to have their own vision and not implement everything someone asks for or have different priorities or specific structure in mind.
Beehaw always tried to create something where they have complete control over everything. And that worked with federation when they were one of a few “big” instances (some people might not know but Beehaw is 21 months old, opened on 2021-11-12), but once influx of new users came in the existing tools weren’t enough to have the level of control they wanted. So they clsoed the doors on new users and isolated themselves and at the same time angered a big portion of fediverse users for taking advantage of new user influx but the cutting them off from the rest of the fediverse.
I’m not sure if people checked the posts where Beehaw listed features and tools they want and a lot of them are super tailored to Beehaw vision which is not in step with federated Lemmy as a whole.
I don’t think that the Beehaw vision and fediverse can coexist as they have diametrically opposed ideas.
I’m not sure if people checked the posts where Beehaw listed features and tools they want and a lot of them are super tailored to Beehaw vision which is not in step with federated Lemmy as a whole.
I don’t think that the Beehaw vision and fediverse can coexist as they have diametrically opposed ideas.
As another outsider, I disagree. All the ideas and suggestions from the beehaw team seem like things that would benefit the whole Fediverse (or other lemmy instances at least). I’m curious what suggestions you think are incompatible?
Take
If a Berson is reported on another instance, we never get the report.
Why should Beehaw get a report for something not done on their instance? Instance rules only apply to that instance activities.
Or
Limiting (Lock our communities down from certain instances but still allow people using our instance to talk to people from those instances)
That is fundamentally anti federation suggestion.
Why should Beehaw get a report for something not done on their instance? Instance rules only apply to that instance activities.
You’d still like to know if you users are causing ruckus elsewhere, especially since that may escalate to defederatation in the worst case. Also instance rules can apply to external communities too since they are saved locally. Thus admins are responsible for all content, not just local content.
That is fundamentally anti federation suggestion.
I disagree. The alternative is total defederation. Being able to “soft” defederate in certain ways could be useful as a less extreme version of defederation. Right now it’s very binary. Even Mastodon has more granular controls I believe?
You’d still like to know if you users are causing ruckus elsewhere, especially since that may escalate to defederatation in the worst case. Also instance rules can apply to external communities too since they are saved locally. Thus admins are responsible for all content, not just local content.
Why though? If the user is not breaking your rules, what reason do you have to know that? See that’s where the fundamental idealogy of fediverse and Beehaw splits. Beehaw wants total control over every single aspect of their users and fediverse allows to create micro communities that are all tied together and moderated on community level.
I disagree. The alternative is total defederation. Being able to “soft” defederate in certain ways could be useful as a less extreme version of defederation. Right now it’s very binary. Even Mastodon has more granular controls I beli
And I disagree with you, but that’s allowed. There is a difference between giving users choice and giving instance admins that ability to remove the users choice.
P.S. I’m not sure if it’s coincidence that your views align with Beehaw, but feddit.dk is another instance with huge amount of isolation with 533 instances defederated.
Why though? If the user is not breaking your rules, what reason do you have to know that?
I just told you, having users that are reported a lot is a defederation risk. Also the reports may actually indicate problems that also break instance wide rules and you’d never know.
feddit.dk is another instance with huge amount of isolation with 533 instances defederated.
I don’t think it’s very isolated actually. I implore you to take a look at the instances on my block list. It’s not instances you’d want to have an influence on votes. Basically all “normal” lemmy instances are not denylisted.
I just told you, having users that are reported a lot is a defederation risk. Also the reports may actually indicate problems that also break instance wide rules and you’d never know.
And again that’s the mindset issue, not software issue. If user X did something on Instance A, there is no comprehensible reason for Instance A to defederate from instance X. Ban the user X for breaking your instance rules and move on.
Going to stop this conversation here - you have strong opinions on how moderation should be handled. We get it. This conversation is ideological and won’t go anywhere from here. Please cease.