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.

  • daytonah@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 days ago
    1. I have no idea how and which server I joined, is there any manial I can read better yet visually see how servers are connected that are federated? Thx. And when we search something does it search across all servers? Thanks.
  • interdimensionalmeme@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 days ago

    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!!

  • interdimensionalmeme@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 days ago

    When will users be able to frictionlessly migrate between instances without losing their posts, their comments, their history, their relationships, their reputation etc? (Without requiring the consent of the exiting instance owner, or that this server still even exists, as they sometimes don’t)

  • eldavi@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 days ago

    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.

  • Draconic NEO@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 days ago

    Do you plan to introduce some kind of post tags into Lemmy, preferably something that will behave like Hashtags on Mastodon and other activitypub platforms? I know that Lemmy has been embedding community name as a hashtag for a while now, though having tags that can be populated by users would help discovery greatly.

  • egidighsea@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    0
    ·
    7 days ago

    I am new to Lemmy, so haven’t really looked into if the following is possible but can I create groups of communities with a similar topic across multiple instances?

  • diamat@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    7 days ago

    Thanks a lot for the work you do! How do you get by with such a limited amount of funds? How sustainable is your financial situation if donations don’t pick up considerably?

  • Lena@gregtech.eu
    link
    fedilink
    English
    arrow-up
    0
    ·
    7 days ago

    Do you have any plans to make it easier to manage the images stored in pictrs? One issue I have is that I used to proxy images, I no longer do that, but now I have like 300GB on backblaze doing nothing. In this post I outlined more precisely what I mean.

  • Itte@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    8 days ago
    1. What is your opinion on Bluesky being more popular than Mastodone because it is easier for most?

    2. Will Lemmy can become easy like Bluesky? Are there plans like that?

    thanks

    edit: lemmy dev replies only please

  • poVoq@slrpnk.net
    link
    fedilink
    English
    arrow-up
    0
    ·
    9 days ago

    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.

    • Skelectus@suppo.fi
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      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.

      • poVoq@slrpnk.net
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        9 days ago

        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.

        • Skelectus@suppo.fi
          link
          fedilink
          English
          arrow-up
          0
          ·
          8 days ago

          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.

    • nutomic@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      0
      ·
      8 days ago

      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.

    • OsrsNeedsF2P@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      9 days ago

      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.

    • Vent@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      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.

      • poVoq@slrpnk.net
        link
        fedilink
        English
        arrow-up
        0
        ·
        9 days ago

        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.

  • m_f@discuss.online
    link
    fedilink
    English
    arrow-up
    0
    ·
    9 days ago

    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?

    • Dessalines@lemmy.mlM
      link
      fedilink
      English
      arrow-up
      0
      ·
      8 days ago

      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.

    • nutomic@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      0
      ·
      8 days ago

      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.

    • sabreW4K3@lazysoci.al
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      Having a tantrum because breaking changes were announced is asinine. The Tesseract developer comes across like a proper twat.

  • seang96@spgrn.com
    link
    fedilink
    English
    arrow-up
    0
    ·
    9 days ago

    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.

    • Dessalines@lemmy.mlM
      link
      fedilink
      English
      arrow-up
      0
      ·
      8 days ago

      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.

        • Dessalines@lemmy.mlM
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          8 days ago

          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.

          • subversive_dev@lemmy.ml
            link
            fedilink
            English
            arrow-up
            0
            ·
            edit-2
            7 days ago

            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/74300447

            This 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 final SELECT

            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

      • seang96@spgrn.com
        link
        fedilink
        English
        arrow-up
        0
        ·
        8 days ago

        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?

        • Dessalines@lemmy.mlM
          link
          fedilink
          English
          arrow-up
          0
          ·
          8 days ago

          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.

        • Dessalines@lemmy.mlM
          link
          fedilink
          English
          arrow-up
          0
          ·
          8 days ago

          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.

      • seang96@spgrn.com
        link
        fedilink
        English
        arrow-up
        0
        ·
        8 days ago

        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.

        • nutomic@lemmy.mlOPM
          link
          fedilink
          English
          arrow-up
          0
          ·
          8 days ago

          Maybe your disk is too slow, or latency between Lemmy and Postgres is too high?

          • seang96@spgrn.com
            link
            fedilink
            English
            arrow-up
            0
            ·
            8 days ago

            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.

            • nutomic@lemmy.mlOPM
              link
              fedilink
              English
              arrow-up
              0
              ·
              8 days ago

              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.

              • seang96@spgrn.com
                link
                fedilink
                English
                arrow-up
                0
                ·
                8 days ago

                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!

  • Azzu@lemm.ee
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    9 days ago

    Are there any plans to deal with the most common annoyances regarding Lemmy? In my opinion these are all based on federation:

    1. 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.
    2. 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.
    3. 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.
    • Blaze (he/him) @lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      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.

      https://docs.joinmastodon.org/user/moving/#export

      • Azzu@lemm.ee
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        9 days ago

        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?

        • Blaze (he/him) @lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          0
          ·
          9 days ago

          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.

        • can@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          0
          ·
          8 days ago

          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.

          • Azzu@lemm.ee
            link
            fedilink
            English
            arrow-up
            0
            ·
            8 days ago

            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.

            • can@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              0
              ·
              8 days ago

              I guess it’s just been mentioned too much in the past that it still comes to mind when I hear this. Sorry.

    • Dessalines@lemmy.mlM
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      8 days ago

      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.

      • Azzu@lemm.ee
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        8 days ago

        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!

        • Die4Ever@programming.dev
          link
          fedilink
          English
          arrow-up
          0
          ·
          7 days ago

          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

        • Blaze (he/him) @lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          0
          ·
          8 days ago

          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
    • TXL@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      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.

      • Zagorath@aussie.zone
        link
        fedilink
        English
        arrow-up
        0
        ·
        8 days ago

        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.

      • can@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        0
        ·
        8 days ago

        Sometimes. But other times the instance/moderation vibes of each post will be different. Sometimes I enjoy seeing how different groups respond.

    • Ferk@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      9 days ago
      1. 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.

  • Bloomcole@lemm.ee
    link
    fedilink
    English
    arrow-up
    0
    ·
    8 days ago

    How is it some can mod 15+ comms, like this awful character PugJesus , ban anyone for no reason and then comment stuff like this without consequence:

    Be less of a dick.
    Be less of a moron.