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 💜
Thank you for all that you do
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
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.
It may be new, but there has been a huge surge in users and the jank has gone from “annoying” to “liability” now.
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!
doesn’t this fix the issue with media? https://github.com/LemmyNet/lemmy/pull/3897
I’m sad to see how dire the situation is on the moderation and admin side of things, but I just wanted to say best of luck and wish you the best no matter what you decide.
The communities in this instance are occupying a good portion of my subscriptions (quality content most of the time) and I’ll definitely miss them if you end up leaving the fediverse.
Hi, just wanted to say I think you’re really cool and keep up the good work :-)
I think ultimately y’all need to do what allows you to create the community you (we all really) want, even if that means ending the instance and moving somewhere else. It is not a moral imperative to use Lemmy and this was always a risk.
Lemmy has been a great experiment and there was a lot of momentum with the modest exodus that happened from Reddit, but if development is not going the way it needs to go, then we can’t stay here. Simple as that.
I was unaware of the Herculean effort it took in order to remove unwanted media from other instances. That is not just an inconvenience, that is a potentially huge liability. It’s also one more reason why I don’t host my own instance (despite the fact that I probably know enough to get it started, but probably too little to stay out of trouble lol). 
All of this is to say I support whatever decision you make. As long as Beehaw continues to exist I want to be a part of it, and I trust y’all to steer the ship accordingly.
The Lemmy dev AMA really shook my faith in the future of lemmy itself. That being said, I’ll support and stand behind you, regardless of what you decide. If we make a new platform, I’ll follow, if we choose to stand our ground and make the best of it, I’ll help do my part. I believe in Beehaw and I’m proud to be part of the community.
Thank you.
Do you have a link to the AMA?
It’s linked in the top level post
There was an ama? Do you happen to have a link or know which subinstance it was on?
It’s linked in the top level post. Lemmy.ml, one of the two pet instances for the Lemmy devs
Yes it is! This is what I get for passively reading threads while watching tv.
I’m also quite unnerved by the responses to @Gaywallet@beehaw.org in regards to the promotion of instances that spread bigoted ideas and harrass other instances on join-lemmy.
The complete disregard seems to run counter to the ideology that beehaw is built on. It becomes clearer to me as time goes on that beehaw and lemmy have very different (and in some cases opposite) goals and priorities in mind. I for one would be completely onboard for a switch. I’ve admittedly used beehaw and lemmy in general less and less as the moderation issues and shift of tone in conversations have increased.
I think the admins and moderators of beehaw have been doing a wonderful job with the hand dealt regardless.
Yeah those responses are… Pretty bad, and even trend towards almost making me think he’s intentionally refusing to acknowledge the nature of the question
Yes I’m with you there. It reminded me a lot of the common reactionary strategy of purposefully misinterpreting a question in to make the question asked sound unreasonable. Trying to paint it as though promoting them equally with all the other instances is a neutral action/position.
deleted by creator
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?
@ada@lemmy.blahaj.zone had some thoughts, I saw, some time ago, about KBin mod tooling. They were not flattering
That is… discouraging.
For some background: I am a hardware and sysadmin junkie. my server rack is a homelab for learning and reinforcing skills around systems administration, virtualization, and now kubernetes. All this bad faith behavior on lemmy is killing my ability to focus on learning, and mastodon has nowhere near the same number of bad actors. Not sure what it is about a link aggregation service that attracts these people.
If things continue the way they are, whitelisting federation or shutting down will likely be our options.
Don’t get me wrong, i adore the idea of folks logging into the server in my basement and hanging out, I just don’t think that outweighs the current stream of bigotry, hate and CSAM being passed around.
Has anyone looked at kbin to see what is different in terms of moderation?
Kbin is a newer app, but it isn’t any further along than Lemmy in terms of moderation tools. It is only now just getting an API to allow any kind of automation tools. For the past month spam has been a problem on the main kbin instance and the developer has openly said he hasn’t been able to keep up with it.
Popping in late to say that the guy running kbin has said that a huge update is coming by the end of month, and one of the things that’s getting fixed is admin tools across federation. With luck, kbin will be less of a mess soon.
deleted by creator
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.
I’m angry. Everywhere I go on the internet, I encounter some form of prejudice and hate.
What Cambridge Analytica unleashed 10 years ago spread like second-hand smoke to all the platforms and society at large, and it works. There are copycats all over the place now and the whole world has become more hostile. Professional psychologists / psychiatrists endorsing these media techniques was one of the worst things to happen to humanity. The damage may take centuries to heal.
“Chaos and disruption, I later learned, are central tenets of Bannon’s animating ideology. Before catalyzing America’s dharmic rebalancing, his movement would first need to instill chaos through society so that a new order could emerge. He was an avid reader of a computer scientist and armchair philosopher who goes by the name Mencius Moldbug, a hero of the alt-right who writes long-winded essays attacking democracy and virtually everything about how modern societies are ordered. Moldbug’s views on truth influenced Bannon, and what Cambridge Analytica would become. Moldbug has written that “nonsense is a more effective organizing tool than the truth,” and Bannon embraced this. “Anyone can believe in the truth,” Moldbug writes, “to believe in nonsense is an unforgettable demonstration of loyalty. It serves as a political uniform. And if you have a uniform, you have an army.” ― Christopher Wylie, Mindf*ck: Cambridge Analytica and the Plot to Break America
Moldbug writes, “to believe in nonsense is an unforgettable demonstration of loyalty
Sounds like taken straight out of 1984 (published 1949).
You might want to check out Tildes too. I don’t know if it’s exactly what you’re looking for, which I think is a community where you form relationships with others (hasn’t been my experience there [nor here]), but its main focus is less noise, better content (as in both posts and conversation). It’s less about jokes or raking in upvotes and more about having something meaningful to say.
I haven’t encountered that much of any kind of hate speech or your average internet assholery so it might be at least a place to check out.
It’s a bit dry and slow content wise so I don’t think it’ll end up being anyone’s one stop shop for everything social media.
Our website came to fruition because many of us started on Tildes. We were upset with the way minorities were being treated on that website. I spoke out vocally about it, and was told in no uncertain terms that meta-discussions like that were not going to be tolerated. Tildes is better than most, but it still has issues that are not in alignment with what we are trying to accomplish here.
I don’t know if they’ve gotten their act together after that or not but I haven’t come across stuff like that. Or maybe I’m just ignorant and a bit blind to that stuff. Most of your typical internet negativeness I’ve seen has been about Starfield but even that is kinda whatever bickering.
Either way, I’m not suggesting that Tildes would be replacements for Beehaw, just another avenue to check out once in a while.
They have not. It’s really below the surface and only shows up every once in awhile in threads about minorities. It’s a big reason for the entire concept of how we structured our rule system (lots of rules lawyers there), because it was very clear that there is a small subset of strongly opinionated rather privileged users on Tildes who come out of the woodwork to share their ignorant viewpoints. The easiest way to explain it is to vaguely call them all privileged male rationalist centrists - they are often not explicitly bigoted but they are often blind to the privileges they have been afforded and how the system oppresses others.
A hard topic to talk about without specific examples but I’ll take your word for it and keep an eye out when scrolling over there.
If you’re really curious you can search my post history on Tildes. I’m not interested in digging up the past or casting shade in any way, just mostly want to provide context on the platform and the problems I’ve experienced there.
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.
Well, I am sure many are tempted… I am waiting to see if a berson decides to carry the ring so I can offer my axe :p
If I didn’t have a full-time job and a family, I’d probably already have begun. I would offer my bow! :D
Tell me about it. But uhh… have my beer mug instead? There’s nothing I want to do more right now than make a better service (subjective of course) for Beehaw’s use. Time and obligations prevent that from being a quick enough solution though.
And for the early phases of a FOSS project like this you kind of need a benevolent dictator who already has the project started
Yes; but Benevolent is the key phrase where. Not just a dictator for the code.
Mmmhmmmmmmmmmmm. My inclusion of the word was not merely rote practice of the BDFL model lodging itself in my brain. I have some strong feelings about how code is a form of communication, and that the software you develop is intrinsically mapped to the ways you approach person to person interactions. Case in point, the very best software platform for Beehaw would be one whose developers felt the ideal platform would involve be(e)ing nice. This mentality would cause a developer to put heavy phasis on good moderation tools, ones that can give clear, meaningful, and thoughtful reasonings for moderation actions being taken as well as easy ways to parse these mod logs to learn the sorts of social norms the community does and doesn’t tolerate.
Given all this the development of the software would be open to listening to diverse perspectives in feature requests. And I mean diverse perspectives in terms of “this group is vulnerable to online attacks”
I’m tempted to read the whole codebase to start a merge request to implement some modicum of mod tools. Things like deletion propagation, including uploaded media so stuff like GDPR deletion requests can be properly executed would be great, since this would enable or facilitate “admin purge” alongside it. I’m not that well versed in rust but I’ve got my fair share of experience coding. I’ll see how regular post propagation is done and see how deletion is treated (I feel like the solution might be something that instead of truly deleting the data it delets the content but leaves the records on the BD marked for deletion so it propagates correctly, and then after some time an automated task finally deletes them.
If you want I can update you after forking and creating the merge request to work on. IF I begin this, it would be helpful to have some critique.
I personally believe that scratching the whole this is too excessive, there are ways to modify the backend codebase with forks and merge requests if the core developers are open to pull requests. If they are not the project already died lmao.
I’m checking their federation activities on the docs, it seems like user removals do federate but mod removals dont? I’ll check the code when I get out of work :). It might be interesting to look there. https://join-lemmy.org/docs/contributors/05-federation.html
Second edit: It seems like image logging is already developed databasewise. There was quite a lot of discussion on this issue and it was merged a while ago. Frontend tools need to be developed also, but it’s a start: https://github.com/LemmyNet/lemmy/pull/3927
You are a hero we need, but do not deserve. Thanks for any and all work you’re doing! If Lemmy can be fixed, I’d love to see it and maybe even help in some small way. If the maintainers are not willing to accept PRs, especially in a timely manner, then I agree, it’s not going to survive long.
As already stated in the edit, there are already contributions for user and image purges that are being merged, several accepted merge requests in the last week, so the community IS working and the devs are receptive. It seems like the code is developed as two separate servers, one for lemmy and the other for the image manager, and it interacts with any client as a REST server. Then, it connects into ActivityHub through a high level API that I have to check yet, but the functionalities people are asking don’t seem to be impossible to implement tbh. Admin / mod tools need to be implemented first as valid endpoint operations and then be exposed to the outer API so clients can then implement an interface for actual users to do stuff.
The gist of it is that all these kind of stuff takes time, and the amount of people that is up for contributions is not that high, and when lemmy exploded this july, the priority was server stability.
I’ve played with some ideas, but turns out the ActivityPub protocol is extremely difficult to implement in strongly-typed languages, at least from my experience. Anyway, whoever picks this up, here’s my sword!
Yeah, that just reinforces why I would probably choose NodeJS.
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.
This is a conundrum I’ve had as well. I really wish I could spend my time creating a better Lemmy backend from scratch. But it seems like a massive commitment. If I would know that others would rally together for the same cause, I may go along with it though.
The way things like this tend to be done at scale is to rewrite one part at a time, however you can break it up.
Yea I’m not entirely sure how you’d do that with Lemmy at the moment… As stated in the post, it may literally be less work to start from scratch with the better knowledge we have today of the requirements.
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.
Part of the problem I’d like to solve for is that Lemmy is hard for outside contributors to contribute to which is a function of both the verbosity you called out and the weirdnesses that can come to the uninitiated with Rust
I know that Rust can have a bit of a learning curve, but it is also extremely reliable, especially when taking contributions from all kinds of people as different changes are unlikely to slowly break each other over time.
I would for example be extremely cautious when it comes to dynamically typed languages like Python. If you think bad Rust can be verbose or complicated, you’ve never seen bad Python. It can devovle into a mess very easily due to the lack of static analysis.
Also Rust has great performance which is important for keeping operational costs low. Corporations running Python just eat that cost because it’s nothing compared to an engineers salary but operational cost will be everything when it comes to a volunteer run service.
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.
Even though Java is my bread and butter, I’d probably choose NodeJS simply because the resource footprint is so low.
Low compared to what? Rust is super performant compared to node.
Um…compared to…Java. Hence why I prefaced with that.
Take a look at Elixir or Erlang, they seems particularly well suited to an application on the scale Lemmy clone.
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.
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.
A database that’s crummy (but functional) is an important issue, but one that seems like it can wait.
That’s often the problem with how software is perceived by a user. Simple functionality might introduce complexity in already existing functionality effectively breaking it at the scale it is supposed to support. The technical aspect of a piece of software will always seem secondary for the end user, regardless of the functionality it appears to be second to. That’s only logical. You don’t care about a certain metal’s properties when you buy a knife, you care about the kind of cuts it can perform.
My issue with the project is that it’s mostly written in a language that I am not familiar with, and much of the scale it’s built to support is over a protocol that is also new to me. I can’t really judge whether the issues (especially content removal and how actions are synchronized between separate federated instances) are a database issue, a protocol issue, a sub optimal approach to the complexity or even just doable in the current context.
Designing and implementing properly and fully working transparent software is always hard. And in new protocols and contexts is even more so.
You are correct though, these things are not important for the people who use it. What is important for the users is how the piece of software can, and if it can, allow for the use they want to make of it.
Aaaaaaaand this is where my lack of experience shows itself. Thank you for the explanation!
I think it’s kinda funny that a conversation about Beehaw’s problems resulted in a a great Beehaw post. Elsewhere, I probably would have gotten several comments calling me an idiot, or at best, an insulting and condescending lecture poorly disguised as an explanation. Instead, you took the time to educate me on the issue. I appreciate that.
deleted by creator
Well, that’s just my experience with building software. Not sure if it has any educational value as such…
It’s pretty common for people who are not part of the design/implementation to underestimate the difficulty and the complexity, to mistake reluctance or delays as incompetence or indifference. It’s also quite common even for people who are part of the design/implementation to underestimate the complexity or already implemented assumptions that have to be adjusted, which almost always leads to defective software. Add to that the fact that it is an open source project currently at 0.18.4 version and you can explain all of the issues without attributing ill intend to anyone.
Getting nasty comments when you repeatedly point out that you are not familiar with the process would just be unfair. Besides, it’s the user experience (moderators/admins/hosts are users too) you are commenting on, making a completely valid point about the importance of moderation in building a community.
I really wish it wasn’t built on rust so I could actually be helpful :-/
Isn’t Lemmy open source, though? Someone could step in and implement mod tools
In theory yes, but the backend’s written in overly verbose and honestly fairly terrible Rust, which isn’t as widely known or easy to learn as, well, pretty much any other language they could have picked.
Rust in general seems like a bit of a poor choice for the backend; just about anything like Javascript / Typescript (eg. Node), Ruby, Python, or Go would likely have been better. Yes, sure, Rust is capable of being fast, but something like Lemmy isn’t going to be CPU-bound (unless you do something really stupid) and much more important is how you use and set up your database – as can be seen from how incredibly poorly Lemmy performs at the moment. The memory safety benefits of Rust are nice, but I’m not convinced they’re critical for a project like Lemmy, which at this point would benefit more from a more widely known and easy to learn language.
The biggest tragedy of moving off Lemmy for me is that I love having Sync to browse Beehaw from my phone. I’m a mobile user and I really like having a native app to enjoy a community like this. 😭
What we move to could still have an app … I’m using Liftoff and Connect, they both do ok, and I’m guessing adapting to another app (or good mobile web frontend) wouldn’t be as painful as you think!
I’ve been thinking the same thing for this, but Liftoff
All the admins here have given me plenty of reason to trust that you’ll make the right decision for Beehaw, whether that’s staying or moving. This is a good place and I’ll stick with you no matter what you decide.
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.
The question will be: if the change is made, will the users follow?
ultimately: if it fails, it fails. our metrics for success here aren’t size or longevity, really—they’re just bonuses.
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.
All I can say is it would be a big, big loss.
Beehaw made me believe in the idea of building a healthy network, especially in the beginnings.
I remember the day I asked Chris to federate with us, we used allow-lists, and maybe this should have been the way to go, considering how much trash has happened in the meantime.I totally agree with your criticism about the state of the platform itself, slow progress, missing and broken mod-tools etc. unfortunately it seems that development cannot keep up with the speed of growth and the associated demands.
So, imho, you make the Fediverse a better place that’s why I hope you stay ;)
I would like to echo this. Without getting into specifics, beehaw was one of the few spaces taking a nuanced take to a political topic that pretty much kept me from descending into the despair of thinking there was a lot of heartless people out there.
It helped my level of cynicism and I can’t overstate how impactful that’s been.
Honestly, I’m happy to join if beehaw move on to something like a forum and not-federated. IMO (which may sound selfish to some but) I join beehaw because of the vibe and the rules that I’m happy to follow. I’m not really joining beehaw because I want to use it as a Reddit replacement, but I want to interact with the community. I feel like Beehaw identity doesn’t really tie to lemmy or on specific software.
So whatever if it federates or not will not really affect me much. I only speak for myself, of course. For others, it might not be the same case. I feel safe commenting and talking in beehaw own community, so… whatever the decision, maybe I’m happy to stay/follow with beehaw. Thank you for the transparency and hard work you all put into beehaw :)
I’m a simple man. Where Beehaw goes, I follow.
I have had enough of attempting to engage others in good faith, and assuming everyone is an rational actor.
Beehaw is a community that chooses to be excellent to one another, and to not be garbage human beings. I’m on board with that. Fuck the toxicity everywhere else. I’m with you and will die on this proverbial hill.
I’m still a fairly new member, and for the most part, Beehaw has required the least amount of pruning to create a timeline of content I actually want to see. Being on the sidelines and hearing how the Lemmy devs have reacted to various issues, it sounds like they are very emotionally immature and most likely will drive the platform to be “open” in their own interpretation.
I appreciate the hard work that the mods and admin team here do and it seems like the goals of Beehaw and Lemmy have become antagonistic towards each other. I still haven’t seen any really good implementations of the fediverse in general, so I have no loyalty to that ecosystem.
I think you guys know what you are doing and are smart enough to pick the best platform if that will ultimately make your lives easier. I don’t think Beehaw should feel like a job (and especially should not require the hours of a job), so I’d support moves that would actually make it a fun project. On Lemmy, it seems like there are a lot of barriers keeping the project from being enjoyable.
I would charitably put it that the Lemmy devs built something small that could provide a minimum viable product for a small Reddit like system without really putting any thought into how a large system would actually work. I also don’t think they understand how to scale up such a system.
The devs seem perfectly happy with small communities that don’t need much moderation, but that won’t cut it if Lemmy goes through another growth spurt.
A fork of Lemmy will have all of Lemmy’s problems but now you’re responsible for them instead.
Most of this web dev stuff is out of my area of expertise, but this? I felt this in my soul.