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.
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
@[email protected] 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 [email protected]? So users not on GitHub can chime in.
Sure, and be sure to link that closed github issue.
No questions right now. Just wanted to say thank you for your hard work.
I know y’all catch a lot of shit and get hammered with requests/demands, so I wanted to let you know that your work is greatly appreciated.
Thanks for dedicating your time and energy to making a non-corporate, federated social environment possible.
Being on Lemmy has been a breath of fresh air.
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?
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.
Divas have problems no matter what you do.
Having a tantrum because breaking changes were announced is asinine. The Tesseract developer comes across like a proper twat.
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
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.
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?
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 [email protected]
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. [email protected] 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.
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.
- 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.
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.
Some users use it as an ideological war on instances they don’t like, which is extremely funny.
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.
Sometimes. But other times the instance/moderation vibes of each post will be different. Sometimes I enjoy seeing how different groups respond.
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!
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
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
What are its greatest strengths and weaknesses? How would you improve it?
There are some more obvious things, like mod tooling, but I’m gonna concentrate on smaller, niche UX issues that I think arise from how it is designed already, because I think there are probably already enough voices who will speak up for the bigger things.
- Inconsistent language UX between lemmy-ui and Jerboa. Specifically, that Jerboa provides no way to specify the language of a post or comment.
- Inconsistent parsing of markdown between lemmy-ui and Jerboa. Specifically. Superscript and subscript work fine on single words, but ^multiple words in superscript^ ~or in subscript~ do not display correctly in lemmy-ui. They do in Jerboa.
It’s bad enough that third-party apps do these things (and others, like spoiler text) without following the spec consistently. But can they really be blamed when even the two main first-party UIs don’t do it right? The post/comment language feature is awesome, as is the fact that you can do such a wide variety of syntax including subscript. But if users are not getting a consistent experience with these across platforms, it leads to confusion.
- Spoiler text syntax is clumsy. I like the idea of having collapsible text, but
::: spoiler [display text]
is an insanely wordy way of doing it. In what other context is markdown do anything similar to requiring the literal textspoiler
? It would be great if (a) an inline spoiler text syntax could be implemented, similar to>!Reddit's!<
or||Discord's||
, and (b) if a more elegant collapsible text syntax could be created. - Lemmy has a nasty habit of transforming user input. I just found out it converts your backslashes into forward slashes (see this comment), but a while ago I noticed that it completely removes text posted between angle brackets <like this text>, which is annoying when trying to write pseudo-XML. {does it allow braces?} [square brackets?]. It feels to me like a relatively lazy attempt to sanitise user inputs, and it creates a poor UX, especially since I’m sure prepared statements and other safe data handling is employed. In my opinion any time you’re changing what a user wrote, that’s an anti-pattern. If you can’t just leave it how it is, it’s better to just block posting with a clear error message explaining why
Basically, I’d just like to see an overall focus on the user experience and how it all fits together as a system.
Also my little pet feature: keyboard navigation. Back on that other site, before the redesign, there was incredible keyboard navigation thanks to the Enhancement Suite. j/k to navigate up/down through comments. Enter to collapse. a/z to up/downvote. Etc. It’s a delight to use, and is a big part of the reason I could never move to the redesign, before I came over here. Not having that is a big drawback IMO.
edit: looks like the angle brackets thing was <fixed> . Still need the backslash thing fixed.
edit 2: I was just reminded of another example of the lemmy-ui vs Jerboa confusion, as well as another example of well-intentioned by ultimately anti-patternesque transformation of user text: how user and Community mentions are handled.
@[email protected] will not be a hyperlink for viewers in lemmy-ui, but /u/[email protected] will be…despite the latter being generally not the preferred way to do it. lemmy-ui also does this awkward thing where if you use the autofill suggestions when typing a name, it wraps them in a hard-instanced URL instead of the better UX of taking someone to their profile on your instance: @[email protected].
Communities are even weirder. Allowing the autofill of [email protected] will create a hard-instanced URL (
[!community@domain](https://domain/c/community)
), but then the parser ignores this and creates a URL to the user’s instance. If, instead, URLs went where the user’s text input says they go, but the autofill would default to naked Community mentions such as [email protected], this would be a much better experience.Meanwhile, Jerboa doesn’t have an autofill capability for users or Communities. Users who are mentioned with /u/ are not linked, while users who are linked with @ get a link that is handled within the user’s instance, regardless of whether it’s a hard-instanced link or a naked mention. Communities are also always handled within the user’s instance.
Regarding the markdown point for lemmy-ui, I think part of the issue is that we don’t use a markdown parser tailored to our purposes. We use
markdown-it
, and our custom (non-common mark, so stuff like the spoiler blocks) stuff uses plugins for it like this one. One of these days I’d like to make a markdown parser specifically for Lemmy.The plugin architecture for markdown makes a lot of sense, because it allows other projects to mix and match markdown rules for their specific use case. I also used some of your Rust markdown plugins for Ibis.
All these are due to a lack of developers for open source in general. Jerboa needs more devs than just me and @MV-GH, but no one else has stepped up to take on fixing any of these. If there were 5 more of me, I could get these done, but I’m too busy.
Have you ever tried https://github.com/vmavromatis/Lemmy-keyboard-navigation ?
I had not. I had no idea that even existed, thanks!
Do they have a Lemmy community for feedback? It’s super buggy right now unfortunately, with “a” taking me to the post on the poster’s instance, instead of upvoting (or at least taking me to the post on my instance…), and with all keyboard shortcuts handling alternative keyboard layouts in what I would consider to be the wrong way (though this is possibly debatable/up to preference).
When a instance goes permanently offline, does the content vanish? If so, could there possibly be a way for another instance to “adopt” the content on their instance so those posts aren’t lost to time?
I think it might help reassure people to pick smaller instances.
When will anyone be able to click the following /c/books And see an agglomeration of all “books” communities on all federated server? I don’t mean multireddits Thanks!!
Reddit has far more niche communities. There’s the saying that “there’s a subreddit for everything.”
What do you think the trajectory/timeline looks like for lemmy to develop a more robust array of niche communities (aka niche subreddits)?
+1 on registration experience being the #1 issue.
Would also be cool if we could stop 404/500ing deleted posts and instead display some indication it has been deleted. See https://en.m.wikipedia.org/wiki/Principle_of_least_astonishment.
Thanks for Lemmy! 💙
Hello, would it be possible to include a button next to the up/down vote button, which marks a post as “read” and prevents it from being shown again? While scrolling I just sometimes see the same post again on the next day
What’s the vision for using lemmy? User should create an account on one server, and use all? Or should create users on multiple servers? The first one seems like the way to go, but it wasn’t quite clear for me when I signed up
I’m just a user and don’t follow the project super closely so please forgive me if this has already been addressed somewhere.
Is there any sort of JavaScript-less interface that would work properly on the Tor network with strict settings enabled? And could you set up instances only with a .onion domain? That way you don’t have to pay for a domain and you’re not at risk of having your domain yanked by ICANN, etc.
If I remember correctly, there was a mastodon instance that was using like a Pakistan domain or something like that and they yanked it.
Also, Federation between Onion and Standard Domains that way tor users would not be isolated.
My main reason for asking is that in my worldview, governments want to break encryption and break freedom of speech, if at all possible, and so the dark web is going to be more and more necessary as time goes on.
Edit: The more standard traffic we add onto the Tor network, the less able it is to be blocked or surveilled as to why somebody is using the Tor network. As an example, I send all of my signal traffic through Tor and download apps from fdroid through Tor and chat on SimpleX through Tor and quite a number of other things. Not because I need the Tor network, but just simply to be yet another person using it for standard activity
There is documentation for running a Lemmy instance over Tor, and one of the many frontends probably works without JS. If not someone could implement it with the API. Anyway there doesnt seem to be much interest in practice, because the clearnet works good enough for now.
I did open an issue on the thunder application asking them if they could implement SOCKS5 proxy support in order to do the tor proxy at like 127.0.0.1:9050
Okay, that shows how to make the interfaces available over the network. But is there planned functionality for making Federation work? Even if you don’t federate to clearnet domains, you could have several onion instances that could federate with each other and have a network of onion instances.
Federation uses standard HTTP so it shouldnt require any specific support. If you want to send outgoing federation over Tor you can set a proxy via environment. Youre welcome to test these things and update the documentation with your results.
Oh, okay, good to know it should work. I’m just a standard user, but it is something that interests me.
Federation between Onion and Standard Domains that way tor users would not be isolated
This is the hardest part as you would need to be both have an onion and have a standard domain, or be a tor-only Federation.
You can easily create a server and allow tor users to use it, which unless a Lemmy server actively blocks tor, you’d be welcome to join via it. But federation from a clearnet to onion cannot happen. It’s the same reason behind why email hasn’t taken off in onionland. The only way email happens is when the providers actively re-map a cleanet domain to an onion domain.
This is what Lemmy would need to do. But then you would have people who could signup continuously over tor and reek havok on the fediverse with no real stopping them. You would then have onion users creating content that would be federated out to other instances. & User generated content from tor users also is … Not portrayed in the best light.
I’m sure someone will eventually create an onion Lemmy instance, but it has it’s own problems to deal with.
This is especially true for lack of moderation tools, automated processes, and spammers who already are getting through the cracks.@[email protected] time to shine
deleted by creator
How would you improve it?
a way to filter out posts that have no engagement or comments from others would be helpful since the larger instances flood my feed w hundreds/thousands of news links that flood out the discourse on lemmy.