In the last weeks Lemmy has seen a lot of growth, with thousands of new users. To welcome them we are holding this AMA to answer questions from the community. You can ask about the beginnings of Lemmy, how we see the future of Lemmy, our long-term goals, what makes Lemmy different from Reddit, about internet and social media in general, as well as personal questions.
We’d also like to hear your overall feedback on Lemmy: What are its greatest strengths and weaknesses? How would you improve it? What’s something you wish it had? What can our community do to ensure that we keep pulling users away from US tech companies, and into the fediverse?
Lemmy and Reddit may look similar at first glance, but there is a major difference. While Reddit is a corporation with thousands of employees and billionaire investors, Lemmy is nothing but an open source project run by volunteers. It was started in 2019 by @dessalines and @nutomic, turning into a fulltime job since 2020. For our income we are dependent on your donations, so please contribute if you can. We’d like to be able to add more full-time contributors to our co-op.
We will start answering questions from tomorrow (Wednesday). Besides @dessalines and @nutomic, other Lemmy contributors may also chime in to answer questions:
Here are our previous AMAs for those interested.
What are your thoughts on blocking AI scraper access? Any attempts to improve that on the side of Lemmy? Basic things like allowing to customize the robots.txt easily would already help.
I also recently tried this new AI block tool called Anubis with Lemmy, but for some reason it fails with Lemmy-ui. Might be interesting to investigate further.
You can load a different robots.txt in your nginx config, something like this:
location /robotx.txt { index /path/to/my/robots.txt; }
Additionally 1.0 will change the “private instance” to work with federation enabled (see https://github.com/LemmyNet/lemmy/pull/5530). Then only logged-in users will see content, while AI scrapers wont see anything except the login page.
Anyone that wants to scrape Lemmy would have an easier time setting up their own server, federating with everyone, and reading straight from their DB. No web scraping required. Though, web scraping defenses would be useful against general web scrapers/crawlers.
That would require the authors of these AI scrapers to actually give a f*ck. The problem is that they don’t, and just scrape what ever they can find repeatatly almost like a ddos attack on the open web.
Yup, same as they could clone git repos in one shot, but they instead crawl every single page.
I’ve previously worked in anti-scraping. There is a negative 0% chance the Lemmy devs have the resources to effectively do this without tanking the server for everyone else.
I just set up Anubis today. Specifically I’m only testing it for Lemmy-ui, and it seems to work fine.
It looks like the distributed waves that keep bringing the service down hit exclusively our lemmy-ui subdomain, so maybe non-SSR photon is also a good defense, heh.
Hmm, that is odd. I guess I need to double check my Nginx config for lemmy-ui then. You have your setup documented somewhere?
Edit: ah, you run Photon as the main UI and lemmy-ui somewhere else? I think specifically the split between frontend and backend on the root domain somehow makes Anubis fail to set the correct cookie.
I don’t think it should be a problem, but I’m not that sure either. Lemmy.fedi.zutto.fi also runs it and that’s just a normal lemmy-ui installation. I think Zutto simply forwarded all traffic to Anubis and then fixed federation. There was some discussion and config shared in sopuli’s finnish matrix room.
Are there any plans to deal with the most common annoyances regarding Lemmy? In my opinion these are all based on federation:
- Some completely automated way for users to join Lemmy. Yeah, it’s not hard to select a server and it’s a “good thing to do”, but it’s still better to give people the option to go for convenience instead of the “proper” path. Maybe some kind of system where instances sign up for this general, convenience way of signing up, and the registered users just get automatically distributed evenly across those instances.
- Duplicate post aggregation. The nature of federation will always make it make sense to have duplicate communities, but this will also make posts with the same links, same images, same videos, etc show up in people’s “all” feeds multiple times. It is technically possible to algorithmically detect these duplicates and offer users a UI option (not actual backend merge) to merge them all visually into one post.
- A way to backup your whole user data and completely restore it on any instance you want. If an instance goes under, it should be possible to keep all subscriptions, all your posts, all your comments, and migrate them to a new instance.
Yeah, it’s not hard to select a server and it’s a “good thing to do”, but it’s still better to give people the option to go for convenience instead of the “proper” path.
We could add a “fast join” button to the signup dialog on join-lemmy.org , where it takes you to a random instance’s signup page.
Overall though, we should ignore the “advice” from reddit that tells us that people are too stupid to sign up for anything now. People did this for every forum and every other site all until ~2005 when US tech gobbled up most services, and ppl continue to show us that yes, they do know how to type in a username, password, and email to sign up for something.
Duplicate post aggregation. The nature of federation will always make it make sense to have duplicate communities, but this will also make posts with the same links, same images, same videos, etc show up in people’s “all” feeds multiple times.
In lemmy-ui we have a post-deduplicator for feeds, but unfortunately not a lot of other apps (including jerboa, that’s my bad) have added something similar.
A way to backup your whole user data and completely restore it on any instance you want. If an instance goes under, it should be possible to keep all subscriptions, all your posts, all your comments, and migrate them to a new instance.
Settings export already exists. Copying historical content and rewriting history isn’t possible in a federated system, but we do have an open issue for data export.
we should ignore the “advice” from reddit that tells us that people are too stupid to sign up for anything
Definitely agree. The problem is just when someone in the past said “you should join <forum x>!”, you were always able to just immediately go to forum x’s signup page and sign up. But if someone hears of Lemmy, and goes to join-lemmy.org, there is no way to go to a signup page directly. They have to first learn about the multiple servers, and choose one. I think a “fast join” button like you say should be fine, and immediately next to it something to catch all the advanced actually curious users with something like a “advanced sign-up”
In lemmy-ui we have a post-deduplicator for feeds
That’s weird, because that’s exactly from where I’m coming from, I’m always using the lemm.ee website directly on all my devices, and I constantly see duplicate posts.
Copying historical content and rewriting history isn’t possible in a federated system
I have less knowledge of this topic so I’ll defer to you, but I have the feeling this may not be true. You might of course not be able to ensure consistency between all instances, ensure that it’s been changed everywhere, but I really can’t see why this is any different than “editing” a comment’s content or a post title, which is already possible. Why wouldn’t it be possible to “edit” the comment/post author in exactly the same way?
Thanks for your response and all you’re doing!
That’s weird, because that’s exactly from where I’m coming from, I’m always using the lemm.ee website directly on all my devices, and I constantly see duplicate posts.
I was thinking about what you were saying yesterday and I had another look.
- on the subscribed feed, using “New Comments”, crossposts seem to indeed aggregate
- on the All feed, using “Top of the Day”, crossposts would indeed appear multiple times, depending on their respective scores
I like to use “Top of X” a lot 🤔
Then that’s where the issue comes from. I guess you might open an issue on the Lemmy GitHub so that crossposts are grouped in the Top views too rather than separated by their own upvote scores
The problem is just when someone in the past said “you should join <forum x>!”, you were always able to just immediately go to forum x’s signup page and sign up. But if someone hears of Lemmy, and goes to join-lemmy.org, there is no way to go to a signup page directly.
People should probably stop saying “join Lemmy”, and instead link directly to the site/instance they suggest
Multispam is one of the things that is genuinely a threat to Lemmy’s usability. If you follow certain topics, you start seeing 2-5 copies of every post. It’s a genuine spam problem and “just block” or “just scroll” is as much of a non solution as it is with other spam.
Sometimes. But other times the instance/moderation vibes of each post will be different. Sometimes I enjoy seeing how different groups respond.
Personally when I want to share something to multiple communities, I deliberately space out the posts in time. It has the slight downside of potentially showing up for a person repeatedly for days, but I think this is outweighed by the upside of them not seeing the same post multiple times within a few minutes, which is really annoying. And it has the added advantage of being more likely to be seen by people who weren’t online at the right time to see it the first time.
Some users use it as an ideological war on instances they don’t like, which is extremely funny.
it’s still better to give people the option to go for convenience instead of the “proper” path.
https://phtn.app/signup gives a prepopulated list
show up in people’s “all” feeds multiple times.
Which interface do you use? Crossposts only show up once on the default UI
A way to backup your whole user data and completely restore it on any instance you want. If an instance goes under, it should be possible to keep all subscriptions, all your posts, all your comments, and migrate them to a new instance.
You can already export and import your subscriptions between instances (account settings - import/export)
Posts and comments can’t be migrated, but Mastodon doesn’t allow it either.
Mastodon currently does not support importing posts or media due to technical limitations, but your archive can be viewed by any software that understands how to parse Activity Streams 2.0 documents.
gives a prepopulated list
The official one also does that. I’m talking about choosing a username, password, and email maybe, and then clicking register, and being done. No thinking involved.
Crossposts only show up once on the default UI
False, you get links to the other posts, of which you posted a screenshot, but each post is handled as being completely separate. If you are in the subscribed, local or all feeds, you would see all of these posts separately. Have you really never noticed scrolling by “the same” post multiple times? You have to go to each post manually to get all the comments to the “same” thing.
but Mastodon doesn’t allow it either […] due to technical limitations
Yes, I know that. But I’m also a programmer and I know that “technical limitations” is mostly a term for “that’s how we started it and it would be too costly to solve now, so we’ll just dismiss it” and not for actual limitations (i.e. not technically possible). It’d maybe require breaking changes of some kind or some kind of annoying backwards compatibility workaround, but that is why I’m asking. I’m not completely familiar with activity pub, but there’s likely some key used to verify posts/messages are made by a certain user, and there’s currently no way to transfer or change that key to a new account. But it seems very technically possible to me, and also possible without massive security issues. So that was my question, is there any plans to do this or no?
False, you get links to the other posts, of which you posted a screenshot, but each post is handled as being completely separate. If you are in the subscribed, local or all feeds, you would see all of these posts separately.
I understand your frustration, however these can be multiple posts but to different communities with varying focuses and moderation styles.
Simply consolidating all the comments in one introduces its own problems.
That’s why no one suggested “simply consolidating”. I didn’t suggest any solution at all. I’m just posing a question of if this actually pretty big problem is attempted to be handled.
I guess it’s just been mentioned too much in the past that it still comes to mind when I hear this. Sorry.
The official one also does that. I’m talking about choosing a username, password, and email maybe, and then clicking register, and being done. No thinking involved.
This should probably be handled more by people when they talk about Lemmy. Instead of explaining what Federation is, just point people to https://vger.app/settings/install so that they can install an app.
Voyager by default suggests Lemm.ee as the instance to register, so no thinking indeed: https://vger.app/profile
That’s the recommended approach nowadays on !fedibridge@lemmy.dbzer0.com
False, you get links to the other posts, of which you posted a screenshot, but each post is handled as being completely separate. If you are in the subscribed, local or all feeds, you would see all of these posts separately.
I only see them once in my subscribed feed. You may indeed see them multiple times if you are not subscribed to all the communities.
You have to go to each post manually to get all the comments to the “same” thing.
This one I agree, and it’s why I generally suggest to consolidate similar communities to solve that issue. !fedigrow@lemm.ee has quite a few examples of successful consolidations.
I’m not completely familiar with activity pub, but there’s likely some key used to verify posts/messages are made by a certain user, and there’s currently no way to transfer or change that key to a new account.
You’re looking for https://activitypods.org/ . I haven’t been following their recent progress, not sure how mature their solution is, and how many Fediverse platforms support them.
- A way to backup your whole user data and completely restore it on any instance you want. If an instance goes under, it should be possible to keep all subscriptions, all your posts, all your comments, and migrate them to a new instance.
This would be great… also even if the “restore” part were not possible (yet?) I feel offering a way to extract your data might even be a requirement for a server to be fully GDPR compliant (though I could be wrong on that, IANAL), reddit does allow you to download your data after all.
Not really a question, but something to think about is being more strict about backwards compatibility so that people don’t get burnt out on having stuff break. Coming from this post by the Tesseract dev, who did not like the breaking changes to the v3 API in 1.0: https://dubvee.org/post/2904152
To formulate that into an actual question, do you think the changes are still worth it and you’d make the same decision to break backwards compatibility?
Having a tantrum because breaking changes were announced is asinine. The Tesseract developer comes across like a proper twat.
This is all a matter of dev resources. If we had maybe 6 full-time devs, we could handle things like backwards compatibility.
People forget that lemmy, like other open source hobby projects, don’t have the resources that large corporations do. People understandably get frustrated when there’s breaking changes, but they also need to not put enterprise-level expectations on a small number of people.
If someone wanted to work on that, of course we wouldn’t be opposed, but you should know how monumental a task that would be.
I would reply directly to that post, but it looks like the admin (who is also the Tesseract dev) has completely blocked federation with lemmy.ml by IP block or useragent block. So Im going to respond here to his complaints:
Lemmy didnt have a single breaking change since version 0.19 which was released 1 year and 4 months ago. And the breaking changes in that version were quite minor. Before that was 0.18, 1 year and 6 months earlier. That version only removed websockets, so most third-party app devs who used the HTTP API didnt notice any difference. Meaning the API has been almost unchanged for over three years which is quite long for a project that hasnt reached a stable version yet. 1.0 includes all the breaking changes that were held back over the years, so that we dont need any more breaking changes for a long time.
That said it would be great if we could keep backwards compatibility with the existing API in Lemmy 1.0. Problem is with all the major changes we are doing now, it would take a huge amount of work to implement this kind of backwards compatibility. If we had twice as many fulltime developers working on Lemmy this would be doable, but our resources are very limited so we have to make some compromises.
Obligatory XKCD: https://xkcd.com/1172
Divas have problems no matter what you do.
I think the greatest strength is that it is so compatible with other Threadyverse software like PieFed and Mbin. This brings a lot of freedom to the users.
Yes this is a major benefit of an open network. Lemmy is a very large project already, so it takes a lot of effort to implement new features, because they have to meet high standards for quality and performance and also work together with all the existing features. A project like Piefed is much smaller and can implement new features more quickly. This allows for more experimentation, and successful features can later be added to Lemmy.
Also users who are not happy with Lemmy for any reason can switch to a different platform while still interacting with those on Lemmy. So if Piefed and Mbin grow that is also a benefit for Lemmy.
the apps! the app support is really great for Lemmy
Absolutely agree on this point. My first app didn’t fulfill my requirements, so I just tested another one being able to configure it how I like.
Yes I’m very excited about the growth of other fediverse software, and a lot of the cool new features they’re adding. Its a great eco-system where we can experiment, be creative, and learn from each other.
What was the last post that made you really laugh?
This one by @lka1988@sh.itjust.works
Hahaha thanks! That’s great!
Hi! As you might remember, i’ve been pushing for this platform for quite some time so i’ll just dump ideas in a pretty annoying way, hope you’ll spare me :3
- do you realize that the power of the threadiverse is that a forum can even fully exist alone and the federation between them is a plus while for microblogging it’s kinda a shit to not have the big reach? basically, are you going to bring lemmy in a ‘‘more forum’’ direction or a ‘‘more social’’ direction?
- will you ever take into consideration to eliminate downvotes? it’s clear that the reddit effect is already here and people are not incentivized to read the article and comment on point or discuss less agreable stuff just because posts gets downvoted?
- if on my instance downvotes are deactivated, do they still influence my home when I browse subs from other instances that have downvotes?
- more UI mod tools! they are never enough because a community manager has not to be also a sysadmin or a linux poweruser just to take care of the community; stuff like subscribing to blocklists and allowlists, stuff like deleting cached media and so on
- how is the plugin stuff going?
- wouldn’t it be better to drop the android client and the federated wiki to fully focus on making lemmy the best federated threadiverse software? now that nodebb has federation the competition is existent (mbin and piefed were never enough e.e) and other frontends are generally cooler (voyager basically brought me back on being active here)
- can we have a lemmy-first approach regarding comunication and contributions? basically i don’t want to make a github account to push some opinions and it seems like they kinda get ignored when on the lemmy community about lemmy
- ability to merge communities having them mirrored in a basic way i guess it’s already on his way
- would be cool to have tags/flairs but i understand that it is not easy (tags could also become a way to follow stuff on par with communities, with their pros and cons obv)
- would be cool to have lists to be able to browse lemmy from lemmy in a more rss way: for example there are communities i want to check once in a while but totally don’t want em in my home and having lists would help
- changing ‘‘favorite’’ posts into ‘‘bookmarks’’/‘‘saved’’
- would be cool to have the possibility to have a favorite users list to check what your friends are up to
- any other suggestion would basically be ‘‘can this thing that forums have also be ported to lemmy?’’, i just think that lemmy has to evolve into a forum first with a link aggregator ui; it’s kinda easy to use discourse as a bug tracker and feature request tracker for example (observation made because of the previous question of using lemmy instead of github for non code stuff)
- would be nice to have word filters and user notes
- also lobste.rs invite tree would be nice
- have you taken into account that maybe offering a service of lemmy hosting managed by you could help?
- dulcis in fundo, always about empowering non tech people, what about having lemmy on yunohost as one of the curated methods by the devs?
alright i think it’s enough lol; now one very big appreciation: thank you for the rss first approach, having rss for basically everything like it was on reddit (well still miss some query rss but i understand it’s harder to do) it’s really so fucking useful and cool and i really hope that lemmy will make niche communities shine again
They did managed hosting before but everyone freaked out that the communist devs were controlling the narrative or some shit. It was a mess, I think they stopped doing it now that there are more instances.
Down votes should remain. It expresses dissatisfaction with peoples cringe bad takes
We offered free instance hosting for some time, in order to encourage the creation of new instances. That was before the Reddit migration when lemmy.ml was still by far the largest instance. It was a success because numerous instances like slrpnk.net and aussie.zone were started that way. But after the migration there was no need for it anymore as plenty of instances were created without our help.
It expresses dissatisfaction with peoples cringe bad takes
I wish this was real. In those cases the right button should be the report button anyway…
Having one vote to incentivize hive mind and another to punish a different opinion is just much more polarizing than having just the incentive only
It’s not rare to see people downvoting someone who wants an honest discussion and bringing their ideas to the table. (to be clear I’m not talking about people wanting to justify their racism or shit like that lol)
everyone freaked out that the communist devs were controlling the narrative or some shit
I must have forgotten 🫨
Cringe is not a reportable offense
will you ever take into consideration to eliminate downvotes?
There is an option in your settings so you don’t see upvotes or downvotes.
Lemmy (AFAIK) doesn’t even show you your total upvotes (karma… whatever it’s called) by default either. None of these imaginary points matter.
So why don’t you do yourself a favor and uncheck these boxes and not give a fuck what others think about your comment.
I know I have.
(Lemmy is rad as fuck)
I already hide them and my ego is already not touched by downvotes :P
I explained in another comment why I think they are deleterious nonetheless
It’s not about me, it’s about social dynamics :)
I already hide them and my ego is already not touched by downvotes :P
I explained in another comment why I think they are deleterious nonetheless
It’s not about me, it’s about social dynamics :)
If I’m not mistaken, instances like Hexbear already eliminate downvotes. I haven’t looked into whether that’s just a default setting for everyone or if it mechanically disables them, but it certainly creates a different social dynamic.
You cannot re-enable downvotes on Hexbear.net. Other instances can downvote Hexbear posts and comments, but those won’t appear for Hexbear users, and Hexbear users cannot downvote other posts or comments.
I can confirm the sections around downvotes as Reddthat has the stance exact what you are talking about (re your child comments)
A downvote disabled instance creates it’s own algorithm/feed/ranking based purely on all other metrics, because as far as the data is concerned, it sees every post having 0 downvotes. It does not take into account external instances.
There’s a forum sort called
NewComments
, that servers and any user can use to turn lemmy into a forum-style feed.Instances can already disable downvotes site-wide, but we also already have fine-grained vote display settings:
Merging communities is no more possible than merging mastodon users.
Which mod tools do we need?
We already have RSS feeds.
We already have the ability to save posts and comments.
Word filters and flairs are in the works.
There’s too many other things here for me to answer.
I love the
NewComments
sort btw, to find and engage in ongoing discussions in threads that sometimes span weeks
do you realize that the power of the threadiverse is that a forum can even fully exist alone and the federation between them is a plus while for microblogging it’s kinda a shit to not have the big reach? basically, are you going to bring lemmy in a ‘‘more forum’’ direction or a ‘‘more social’’ direction?
Im not a fan of microblogging, so for me Lemmy should definitely be more like a forum.
will you ever take into consideration to eliminate downvotes? it’s clear that the reddit effect is already here and people are not incentivized to read the article and comment on point or discuss less agreable stuff just because posts gets downvoted?
As mentioned by others, downvotes can already disabled by the instance, so that local users cannot downvote and federated downvotes are ignored. Lemmy 1.0 will also add per-community downvote settings.
if on my instance downvotes are deactivated, do they still influence my home when I browse subs from other instances that have downvotes?
Yes
more UI mod tools! they are never enough because a community manager has not to be also a sysadmin or a linux poweruser just to take care of the community; stuff like subscribing to blocklists and allowlists, stuff like deleting cached media and so on
I only work on the backend, lemmy-ui and other frontends could definitely use more contributors to work on these things. Im not familiar with all the different apps but they are probably missing many features that already exist in the backend. That said subscribing to blocklists and allowlists seems a bit risky, as you can end up with most instances subscribing to the same list, giving the creator a lot of power. I believe Mastodon or Twitter had some drama like that. Anyway this could be implemented with the API.
how is the plugin stuff going?
Practically finished, you can already start developing plugins.
wouldn’t it be better to drop the android client and the federated wiki to fully focus on making lemmy the best federated threadiverse software? now that nodebb has federation the competition is existent (mbin and piefed were never enough e.e) and other frontends are generally cooler (voyager basically brought me back on being active here)
Lemmy is not a company with a boss ordering the workers what to do. Everyone including me and Dessalines are volunteers, and chooses for himself what he wants to work on. As its all open source its not really competition, more users on NodeBB is also good for Lemmy as it means more user choice and activity.
One reason Im working on Ibis is because I waited for a long time for someone to start a federated wiki project. Its a major thing thats missing from the Fediverse. As no one else did, I have to do it myself. The other reason is to have something different that Lemmy to code on. Working on Lemmy can be quite exhausting because the project is already very mature, so every new change needs to pass tests, be approved by other maintainers and work with the existing features. Ibis is still in early stages and under my control alone, so I can do whatever I want.
can we have a lemmy-first approach regarding comunication and contributions? basically i don’t want to make a github account to push some opinions and it seems like they kinda get ignored when on the lemmy community about lemmy
I checked your profile and it looks like you received adequate replies for all the latest posts.
ability to merge communities having them mirrored in a basic way i guess it’s already on his way
There are open issues for these, but developer time is very limited so we need to set priorities.
would be cool to have tags/flairs but i understand that it is not easy (tags could also become a way to follow stuff on par with communities, with their pros and cons obv)
Theres an open pull request for post tags.
would be cool to have tags/flairs but i understand that it is not easy (tags could also become a way to follow stuff on par with communities, with their pros and cons obv) would be cool to have lists to be able to browse lemmy from lemmy in a more rss way: for example there are communities i want to check once in a while but totally don’t want em in my home and having lists would help changing ‘‘favorite’’ posts into ‘‘bookmarks’’/‘‘saved’’ would be cool to have the possibility to have a favorite users list to check what your friends are up to any other suggestion would basically be ‘‘can this thing that forums have also be ported to lemmy?’’, i just think that lemmy has to evolve into a forum first with a link aggregator ui; it’s kinda easy to use discourse as a bug tracker and feature request tracker for example (observation made because of the previous question of using lemmy instead of github for non code stuff) would be nice to have word filters and user notes also lobste.rs invite tree would be nice
A lot of things would be nice to have, but with the very limited resources we have there is only so much we can do. So we need to focus on the main functionality, its basically the unix philosophy: “Do one thing and do it well”.
have you taken into account that maybe offering a service of lemmy hosting managed by you could help?
Yes, but in the end I dont think the profit would be enough to justify the workload.
dulcis in fundo, always about empowering non tech people, what about having lemmy on yunohost as one of the curated methods by the devs?
We dont have time to manage yet another installation method, but anyone can help out and contribute there.
Wow these were a lot of questions :D
Wow these were a lot of questions :D
Ahah, y e s
Thank you for the answers, I’ll avoid answering back to not make a mess u.u
Will we ever get the ability to mute posts?
Thanks
You can hide them (three dots menu - hide post) is muting different?
If I create a post and then a bunch of annoying people from LW start flooding my inbox, I’d like to be able to prevent new replies from taking over my inbox, but still be able to access the post should I decide I have the energy to tackle the LW hoard.
Not sure where this falls on lemmy’s roadmap or if there is a github issue for it, but you can turn off notifications in piefed per post or comment. You can also enable notifications for posts/comments that aren’t your own if there is a thread you want to keep tabs on.
I see
Just wanted to say I LOVE lemmy! It’s a really positive community, the atmosphere is great and I like how it’s unique but also familiar. I really appreciate your work on it. I know this is AMA… what’s your favourite animal?
From my perspective we need better Mod and Admin tools. Forum software has a lot of them but Lemmy is lacking in this department.
The key important one is being able to move posts to different communities. You’ll often get reports of posts not being appropriate for a community but there is no way to actually move it.
There was some discussion of this not long ago: https://feddit.uk/post/24412286
@nutomic@lemmy.ml linked this GitHub issue: https://github.com/LemmyNet/lemmy/issues/2345
It shouldn’t be too difficult. A move is essentially a cross-post but it keeps the OP as the poster (rather than the cross-poster). You’d then want to lock the original post, and either hide it or add a message directing people to the new post. That’s all current forum software does.
The main question is how this can work in terms of federation. When creating a new post it directly references the community url. If the user and community are on different instances then the community instance cannot rewrite the post to reference a different community. So it would have to tell the post creator to (automatically) resubmit the post to the new community. Same for all comments, they would have to be recreated by the respective author’s instance in the new post. Seems quite complex to implement.
Which tools specifically? I ask because this is a common complaint, but 99% of the time its something we already have, that most ppl are unaware of.
The key important one is being able to move posts to different communities.
Lemmy like all federated services, can’t rewrite history, but you can already cross-post (although it would be the mod cross-posting, as we don’t let mods alter user data except to remove it). It would just take someone adding that as an issue to lemmy-ui and working on it.
It would be nice to have way for admins and mods to make notes on people. E.g. If you are giving someone a warning, you currently need to use an external tool to log the warning.
Which tools specifically? I ask because this is a common complaint, but 99% of the time its something we already have, that most ppl are unaware of.
- mod mail, so that users can reach out to the whole mod team at once, and the team can come back to them
- a more structured mod queue, allowing to filter by community. The Reddit one on old.reddit was good to help keep an overview on the mod actions to take
more structured mod queue, allowing to filter by community
The upcoming combined modlog has this, as well as other more detailed filters.
You can read through these issues related to modmail, but the short version is that it’s way out of scope for us, and not something we have time to do. Replicating private group chats is better done by other services like matrix, or using a shared email inbox.
I see, thank you for the links
Which tools specifically?
Standard Web forum tools include:
- Editing posts - the main issue is misleading titles
- Moving posts to different communities
- Merging posts
- Splitting comments into separate posts
- IP check
This post makes some good points about reports federating (being worked on, I believe) but also about the lack of what we’ll call a “moderation panel” where you can access tools for the community, like seeing a list of banned users and being able to add to it there or unban someone.
There are other “nice to have” tools like post approval
I am curious to see what moderation tools PieFed, has and NodeBB now they are federated, but the documentation is skimpy on that front.
Editing posts - the main issue is misleading titles
Moving posts to different communities
You can read over the discussion here, but we will never allow mods or admins to act as / impersonate users, or edit their content.
We also can’t rewrite history in the fediverse (unlike a forum) so “moving” a post would also entail deleting and recreating content other people made.
Splitting comments into separate posts
Merging posts
These ones sound really strange, but its similar, I don’t want mods to be able to rewrite user history or move it.
IP check
We don’t store IPs so that’d be impossible.
You can read over the discussion here, but we will never allow mods or admins to act as / impersonate users, or edit their content.
I really don’t get this. Why is editing user content with slur_filter or modifying URLs accepted but allowing mods/admins to change the NSFW toggle isn’t? It also ignores that savvy-enough admins can edit user content with SQL queries.
I think slur filters, tracking param removals, and local link rewriting are acceptable, because (with the exception of the slur filter) they’re non-moderation actions, and also applied uniformly regardless of who made them.
It also ignores that savvy-enough admins can edit user content with SQL queries.
That’s unavoidable of course, anyone with DB access ultimately can edit things. But if people catch on, I doubt your server would gain many users or last that long. Most importantly, we shouldn’t allow that to happen via the API.
You’re free to start a “Should mods be able to edit user’s data?” discussion, but I doubt it would get much support, especially from reddit allowing this and it souring everyone to it.
Most importantly, we shouldn’t allow that to happen via the API.
My view is that not adding this to the API will only encourage admins who want this to do it through less transparent means, like injecting fake activities into the
sent_activity
table. Most admins are reasonable people, and have good relations with their users, so if admins explained themselves then I think most users would be pretty accepting.You’re free to start a “Should mods be able to edit user’s data?” discussion, but I doubt it would get much support, especially from reddit allowing this and it souring everyone to it.
I mean there’s been like 3 or 4 GitHub issues opened about this, so there’s clearly some demand for it. Should I make a post in !lemmy@lemmy.ml? So users not on GitHub can chime in.
Sure, and be sure to link that closed github issue.
Do you plan on moving away from GitHub to something else like Forgejo?
Native push notifications would be awesome for Lemmy! I’m keeping my fingers crossed.
Unified Push support would be great.
https://github.com/LemmyNet/lemmy/issues/2631
It’s coming in the next release
Thanks for the info! It looks like we’re almost there - 81% completion means the final release of 1.0 update is just around the corner!
Let’s go! No more email notifications
There is an issue open requesting this… I been following it for a while.
On the server perspective, I have a question, what are your thoughts for horizontal scaling on the database? This seems to be the biggest limitation and requiring higher spec hardware to scale especially for the bigger instances.
My tiny instance for example I give over 20GB of RAM just to postgres to make it perform efficient enough.
The way to solve the database problems isn’t to keep throwing more and more money at powerful servers and scaling. Its to fix it at the root: lemmy’s unoptimized database.
@dullbananas has done invaluable work in making our DB better (and all of these will be in
1.0
), but I’m convinced that if we had even 1-2 more Postgresql experts do a pass over the DB, and ideally one full-time expert, all of these problems could be solved.I 100% agree with this and there have been great strides since I started using Lemmy ~v0.17! That said at some point optimization will have lower returns and have a higher effort to put into and once a community grows extensively it likely might not be enough, so I was curious to what you guys were thinking at that point, something like Ctius for sharding postgres?
I’m sure we’re nowhere near that level yet. We haven’t come close to postgres’s limits, and most of our bottlenecks are unoptimized queries.
Does the project maintain a list of known slow queries? This is my favorite type of work
The post list query is by far the worst offender. It needs to filter, sort, cursor paginate, and join to many tables, and indexes are hard to follow and keep up with.
What’s more is that the problems only surface with lots of historical data, meaning we can only really test the query plans with a fully populated DB.
All this requires running lemmy locally, and inspecting the postgres query durations. We really need proper test suites (lemmy DB perf is one example) that can stress-test production data also.
Here is one historical issue:
I’d very much appreciate any help.
I should have some time tonight to start looking at this. Thanks for the info!
Thank you in advance!
Good evening Dessalines, I have started looking at the posts query.
The lowest hanging fruit I think would be if we could replace some of the joins with
WHERE EXISTS
which can have a huge impact on the query time. It seems this is supported in Diesel: https://stackoverflow.com/a/74300447This is my first time looking at the codebase so I can’t tell yet which joins are purely for filtering (in which case they can be replaced by
WHERE EXISTS
) and which joins need to be left in because some of their columns end up in the finalSELECT
I can’t tell for sure yet but it also looks like this might also be using
LIMIT...OFFSET
pagination? That can be a real drag on performance but isn’t as easy to fix.EDIT:
Looking some more, and reading some linked github discussion - I think to really get this out of the performance pits will require some denormalization like a materialized view or manual cache tables populated by triggers. I really like the ranking algorithm but so far I’m finding it difficult to optimize from a query perspective
This is helpful. Could you make a github issue and copy-paste this there? Thx.
Nice number
Sounds promising
That’s a very interesting point, have you tried asking for support on !lemmy@lemmy.ml or other general communities? There are probably a few Postgres experts on the platform
We’ve asked for help various times, but don’t usually get much help. Despite the seemingly large number of “experts” out there, only a tiny number of them contribute to open source. I’d still consider it mostly a wasteland, with a few people doing the work that should be done by 100x their number.
20 GB RAM for a single user instance sounds like a lot. Did you use pgtune? It may also help to run a reindex or full vacuum.
Yeah I used pgtune as a base and found more memory needed to be assigned to certain spots especially to keep federation with bigger instances, otherwise timeouts would occur resulting in my instance being constantly behind.
That said I read postgres 17 is much more memory efficient, though I have yet to move my lemmy database to it yet since its the largest haha.
Maybe your disk is too slow, or latency between Lemmy and Postgres is too high?
It is a k8s cluster and using ceph for all of my storage so the latency from that I bet is the largest reason and upping the memory offsets the disk writes. i also have another postgres DB syncing as a fallback for high availability. Fortunately after tuning the database and giving it enough RAM my instance has been running pretty stable for over a year without any changes.
I am also using less powerful computers for the entire infrastructure (not server grade) which brings to the point of having horizontal scaling on database I imagine will be a growing need with growing instances, communities, and users since it can be cheaper to run multiple smaller spec servers rather than a single with the added benefit of high availability.
Postgres supports sharding which should work without any changes in Lemmy. But so far not even lemmy.world needs that. There are also read replicas which would require support directly in Lemmy afaik. Such a feature will surely be added as instances grow bigger over time and need more resources.
I didn’t think of using read only replicas, that would probably be a very good way to go since its probably 80%+ of actions are reads. Thanks for answering, I am excited to see the how lemmy grows and thanks for all the devs hard work!
What’s something you wish it had? What can our community do to ensure that we keep pulling users away from US tech companies, and into the fediverse?
One of the biggest issue at this point is probably the registration experience. There are quite a few occurrences on !fedibridge@lemmy.dbzer0.com of users not sure whether their email has been validated or not, and at the moment they really need to look out for the toastify notification on their first try, later attempts won’t show it.
Most recent example: https://lemmy.ml/post/27607055?scrollToComments=true
If there could be a way to inform a user saying “your email address has been validated, please wait for an administrator to activate your account, you can reach out to them at xxx”, that would be great.
This generally goes against security best practices as it can be used for attempted user enumeration. A better version would be “we’ll send you an email with your account status if this user exists” but obviously that results in a fair amount more complexity (and cost) to implement
the password/cookie should still work even when awaiting validation, password is set before the email is sent
I am not suggesting users being able to enumerate other users, just that the unique link that is currently used for email verification would be more explicit than just the one time toastify notification
Enumerating users is not a security problem. It’s platform obscurantism to even suggest that it is.
That just opens the door for bots that can never be closed
Youre right, I also noticed some other problems while testing registrations:
- https://github.com/LemmyNet/lemmy/issues/5547
- https://github.com/LemmyNet/lemmy/issues/5548#issue-2949361836
For the email validation it could also make sense to send out another email saying “your email has been validated”, so its not only shown on the website.
Thanks!
I’d need more detail here. If registration emails aren’t being sent out correctly, we need to handle that.
These two posts should provide more details
-
What is your opinion on Bluesky being more popular than Mastodone because it is easier for most?
-
Will Lemmy can become easy like Bluesky? Are there plans like that?
thanks
edit: lemmy dev replies only please
-
Do you guys have plans to add a spoiler tag? I post a lot of memes about tv shows that I watch, but the users complain that the post isn’t blurred.
I know I can use the NSFW tag, but this gives the wrong idea and limits the post visibility (since people can hide nsfw posts).
You can put spoilers in the body
spoiler
Helloooo
Doesn’t work on the android app Eternity
Eternity hasn’t been updated in a while. You might want to try !summit@lemmy.world or !thunder_app@lemmy.world
Open up an issue on their repo.
Doesn’t work on boost client apparently.
Yeah a lot of former Reddit apps that switched to Lemmy did a really lazy job of it and haven’t implemented all of the Lemmy text parsing syntax properly. Spoilers are one of the most common issues, but so are subscript (including ~multiple word subscript~) and superscript (and ^multiple words of it^).
If your app doesn’t parse text correctly 2 years later, it may be time to consider switching.
It may still be using reddit style markdown
but then the user might not realize that there’s an image in the post, which will also limit it’s reach.
So a spoiler tag for post links? This could potentially be added later as an addition to the post tags feature.
I see. Would the spoiler tag also blur the thumbnail?
The only thing that concerns me about handling spoilers is how the third party apps handle them. Do you think it would be a good idea to also blur the entire image (not only the thumbnail) and remove the blur only when the user clicks the image?
Not sure, we would have to see whenever we get around to implementing that.
Even that isn’t too necessary, since you can already put images in spoiler markdown blocks.
You can hide images behind spoiler tags also:
check it out