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.

  • interdimensionalmeme@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    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!!

  • diamat@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    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?

    • nutomic@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 days ago

      I live in Spain, the cost of living here is much cheaper than Germany or especially the United States. I also dont need luxuries, and have enough money saved to last for a while. If donations are not enough I could always work for some company, and spend less time on Lemmy.

  • eldavi@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    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.

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

      That would means the disappearance of /new once enabled. It should be a smarter algorithm that gives you just a few of them to vote on and do your part on sorting. But that also means your feed is no longer strictly chronological.

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

        /scaled already seems to this and it helps with the posts themselves and, yes, shows posts out of chronological order; but helps a lot with seeing posts that would ordinarily get drowned out with /new.

        i was proposing the same thing as /scaled, but with comments and/or votes instead of just the posts themselves since /scaled doesn’t seem to work with the comments feed.

    • Dessalines@lemmy.mlM
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 days ago

      Once its mature, I personally wouldn’t be opposed to moving issue tracking off github and into a federated one like forgejo.

  • 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.

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

      Lemmy is not for microblogging, so I dont think hashtags make sense.

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

        Well they don’t have to show up as hashtags to users on Lemmy, they can show up as their own designated tags you add to the post on creation of editing. Just some form of post tags to indicate the category of a post (could even be specific to communities like subreddit flairs) but they would show up as hashtags on Mastodon, similar to how Lemmy already embeds a hashtag of the community into posts.

  • 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?

  • NuclearDolphin@lemmy.ml
    link
    fedilink
    English
    arrow-up
    10
    ·
    7 days ago

    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.

    • Dessalines@lemmy.mlM
      link
      fedilink
      English
      arrow-up
      4
      ·
      7 days ago

      Thx! Really appreciate it, and I’m glad someone thinks its worthwhile work we’re doing.

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

      We have gone back and forth a few times on how deleted content is returned by the API, its very tricky to get right.

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

        The right answer is letting the user decide. The second answer is the user will scrape every post on every server on every hour so censorship becomes impossible. Sorry but instance owner and moderator empowerment over the users turn lemmy into reddit with extra steps.

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

        I’ve read the Github issues. While I could agree there’s some nuance to it, black-holing the entire thing as though it never existed is a bummer.

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

    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 [email protected] 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.

  • ☆ Yσɠƚԋσʂ ☆@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    9 days ago

    What have been the biggest challenges with the project over the years, both in terms of technical and non technical aspects. I’d be interesting to hear a bit of retrospective on how has the stack’s been working out, and what surprises you might’ve run into in terms of scaling and federation. What recommendations you’d make based on that and what you would’ve done differently knowing what you know now.

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

      The stack is great, I wouldnt want to change anything. Postgres is very mature and performant, with a high focus on correctness. It can sometimes be difficult to optimize queries, but there are wizards like @[email protected] who know how to do that. Anyway there is no better alternative that I know of. Rust is also great, just like Postgres it is very performant and has a focus on correctness. Unlike most programming languages it is almost impossible to get any runtime crashes, which is very valuable for a webservice.

      The high performance means that less hardware is required to host a given number of users, compared to something like NodeJS or PHP. For example when kbin.social was popular, I remember it had to run on multiple beefy servers. Meanwhile lemmy.ml is still running on a single dedicated server, with much more active users. Or Mastodon having to handle incoming federation activities in background tasks which makes the code more complicated, while Lemmy can process them directly in the HTTP handler.

      Nevertheless, scaling for more users always has its surprises. I remember very early in development, Lemmy wasnt able to handle more than a dozen requests per second. Turns out we only used a single database connection instead of a connection pool, so each db query was running after that last one was finished, which of course is very slow. It seems obvious in retrospect, but you never notice this problem until there are a dozen or so users active at the same time.

      With the Reddit migration two years ago a lot of performance problems came up, as active users on Lemmy suddenly grew around 70 times. You can see some of that in the 0.18.x release announcements. One part of the solution was to add missing database indexes. Another was to remove websocket support, which was keeping a connection open for each user. That works fine with 100 users, but completely breaks down with 1000 or more.

      After all there is nothing I would do different really. It would have been good to know about these scaling problems earlier, but thats impossible. In fact for my project Ibis (federated wiki) Im using the exact same architecture as Lemmy.

    • dullbananas (Joseph Silva)@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      8 days ago

      The stack is overall amazing, but not perfect. Waiting for the Rust code to compile is sometimes very annoying, but I wouldn’t want to use a different language. And we had to implement somewhat complicated things that existing Rust libraries did not do. For example, I made the “i_love_jesus” library so Lemmy could have cursor pagination that uses indexes well and allows bringing back the “back” button, we have a few custom QueryFragment impls because of diesel’s limitations, and we have a custom migration runner to do fancy stuff (see crates/db_schema/src/schema_setup.rs).

        • flamingos-cant@feddit.uk
          link
          fedilink
          English
          arrow-up
          1
          ·
          8 days ago

          Oh, to be able to develop Lemmy with something like SLIME or Geiser, now that would be a dream. Too bad the CL’s library ecosystem is so much worse than Rust’s.

          • ☆ Yσɠƚԋσʂ ☆@lemmy.ml
            link
            fedilink
            English
            arrow-up
            1
            ·
            8 days ago

            Clojure has a lot better story in that regard living on the JVM, but the overhead of using the JVM is a downside of its own. It’s a good platform, but definitely not what you’d call lightweight.

            • flamingos-cant@feddit.uk
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              8 days ago

              Yeah, if I was building something production ready in Lisp, Clojure would be my choice even though I prefer CL. Ecosystem is ultimately king.

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

        I made the “i_love_jesus” library so Lemmy

        Could I ask if there’s any meaning behind that name?

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

      2nding @nutomic, that I’m really happy with the stack.

      The one that seems really magical to me, is diesel. With it we get a compile-time-checked database, that’s tightly integrated to the rust objects / code.

      Every single join, select, insert, etc is checked before lemmy is even run, and it eliminates a whole category of errors resulting from mismaps.

      Its made adding columns, and changing our data structures so much less error-prone than when I lived in the java-world.

      Whenever we find that we’d want to do things differently, we usually do a refactor ASAP so as not to keep rolling spaghetti code. We’ve had to do this many times for the federation and DB code, and even have 2 major refactors that also add features ongoing. But luckily we’ve been able to stay in the rust eco-system for that.

      As for UI, leptos didn’t exist when I built lemmy-ui, so I went with a fast react-like alternative, inferno. Its showing its age now, so @sleepless1917 is working on lemmy-ui-leptos, which hopefully will supercede lemmy-ui.

  • Meldrik@lemmy.wtf
    link
    fedilink
    English
    arrow-up
    3
    ·
    8 days ago

    Dunno if I’m too late, but here goes. My question is about federation between instances.

    On PeerTube an instance follows another instance and then federates every channel and videos available.

    On Lemmy, the user can follow a specific community and then that community will federate with the users instance.

    How about being able to, either as the instance itself or a user, to follow an entire instance and have it federate everything?

    An example. I have a user on Lemmy.wtf, but I am also very interested in the communities at Feddit.dk. I never know when new communities have been created in Feddit.dk, unless I go directly to Feddit.dk and look. If I could subscribe my instance to Feddit.dk, then all furrier communities would be visible to me automatically.

    If something like that isn’t possible, then what about being able to browse other instance’s communities from my own instance?

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

      We have an issue discussing non-local community discovery here.

      My vote there is to extend our lemmy-stats-crawler to crawl communities also, host that file somewhere, and build in a scheduled job to refetch and populate missing communities periodically. Its centralized, but if that file is unavailable, it wouldn’t break anything.

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

      A bit tired because my whole family is half sick. Luckily the kids are still okay to go to school.

      Otherwise Im excited for this AMA, because I rarely have such direct conversations with users about Lemmy. The discussions on Github are usually quite technical.

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

      Not bad, the swiss chard and spinach I planted recently are sprouting, so that’s got me excited.