What is lemmy

Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.


Two years have already passed since we started working on some major new features for Lemmy. Back then we still planned to release them as version 0.20, but over time the scope expanded and it turned into version 1.0 instead. Besides many new features, we also took the opportunity to do a lot of cleanup work, so that 1.0 can remain stable for a very long time.

Below you can see the list of major new features. This is far from complete because there are simply too many changes to list. In general, any Github issue which was fixed over the last two years and didn’t get into version 0.19, will be part of version 1.0.

For users:

  • Redesigned UI: New card view, less clutter
  • Post Tags: Categorize posts within a community.
  • Multi-communities: Group different communities together into a custom feed.
  • Post scheduling: Specify when your post should be published.
  • Keyword filter: Automatically hide posts about certain topics.
  • Private communities: Only approved followers can view the content (plus other community visibilities).
  • Notifications improvements including notifications for mod actions, and subscribing to community/post notifications.
  • Combined Feeds: view your liked posts and comments together in a single list.
  • User vote totals: There is a setting to view the vote totals you’ve given to any user.
  • User notes: You can make and view notes for any user.
  • GDPR style data exporting: You can now export your historical data as a JSON file.

Other changes:

  • Comment Locking: Comments can now be locked, and it also locks any reply comments.
  • Plugins: Can be written in JS, Python, Rust, and any other language that targets Webassembly. See the documentation for details.
  • Cursor pagination: Don’t lose your place in the feed when switching pages.
  • OAuth: Login to Lemmy with existing account from another website.
  • New API v4: Apps and frontends need to be updated to take advantage of new features. There is also a backwards compatible API v3 available.

The main work which still needs to be done before the official release is SQL optimizations. Some queries are still too slow, taking up to 300ms. And the database migrations from 0.19 to 1.0 take roughly 20 hours for lemmy.ml (smaller instances will be much faster). If you are an expert with PostgreSQL we need your help. Please have a look at the following issues which include all the relevant details:

The other remaining task is testing and bug fixing. Now it is your turn as Lemmy users: on voyager.lemmy.ml try the new version and create an account. Signups are open, feel free to make posts, create communities and do everything else that can be done. Spamming test posts is absolutely encouraged. See how the new features work, and open an issue if you encounter any problem (backend, frontend).

If you run a test instance for Lemmy, we suggest that you upgrade it to 1.0.0-beta.0 by following the instructions. You can also try to run the 1.0 database migrations against a local copy of your production database. This will show how long the upgrade process will take, and help to reveal bugs in the migrations.

Be careful about upgrading production instances. In principle you can already use 1.0 in production. Be sure that you have working backups and that you can restore them. Expect to tolerate major bugs, or to revert back to the stable version for now. If you have any problems, join the admin chat on matrix or ask in /c/lemmy-support.

For developers of Lemmy apps and clients, now is the time to start updating your projects to use the new API v4. This will give you enough time to use the new API once Lemmy 1.0 is finally released. See the API v4 upgrade guide for instructions. If you develop any tools which integrate with Lemmy, have a look at the new plugin system.

Over the next months we will focus on testing and bug fixing. Afterwards, when when all major problems are fixed we will go to the release candidate phase. Then lemmy.ml will be upgraded to version 1.0.0-rc.0 to find remaining problems in production. When these are also resolved we will publish the final 1.0 release.

Thanks to everyone who contributed to the new release so far!


An open source project the size of Lemmy needs constant work to manage the project, implement new features and fix bugs. Dessalines and Nutomic work full-time on these tasks and more. As there is no advertising or tracking, all of our work is funded through donations. Even so there is barely enough time in the day, and no time for a second job. The only available option are user donations.

To keep it viable donations need to reach a minimum of 5000€ per month, resulting in a modest salary of 2500€ per developer. If that goal is reached we can stop worrying about money, and fully focus on improving the software for the benefit of all users and instances. We especially rely on recurring donations to secure the long-term development and make Lemmy the best it can be.

Donate

      • Not private:

        I just cancelled and resubmitted the request, though. Going to finish this comment, but guessing it won’t have worked by then.

        Not getting scrolled to the comment from this link, but this is the one that hasn’t federated: https://enterprise.lemmy.ml/post/1816/7119

        On Voyager, logged in as the mod/creator and having never unsubscribed, this is what I was seeing:

        Having removed and resubscribed, it now looks fine. I did the same for all the other comms I was previously subscribed to and was able to accept my request to rejoin the private comm I made & can now view it again.

        On enterprise, my request to subscribe to a public comm is still pending.

        • Nutomic@lemmy.mlOPM
          link
          fedilink
          English
          arrow-up
          1
          ·
          14 hours ago

          Found the problem, on 0.19 you have a very long displayname and 1.0 cant fetch your profile for that reason. So all federation with your account is broken. Made a PR to fix it.

  • Dark themes all(?) have issues with white-on-white text in comm selector, RBlind themes are both horrific in their own unique ways:

    my poor eyes

    I haven’t really looked in depth at any of the themes, I’ve mostly been using darkly-compact, though I couldn’t tell you what’s different from darkly.

  • Moderator Controls:

    • can “distinguish as moderator” own comments, but not own posts
    • can “feature in community” posts by other users, but not “feature” comments in threads
    • no controls for posts or comments by Admins
      • maybe y’all don’t agree as admins, but I would expect all the same controls as for other users - feature/unfeature posts (and comments, ideally), lock/remove/warn, ban/unban/appoint or remove mod, view votes, edit as mod (given its limited options)

    Perhaps with exceptions if an admin has used a “distinguish” feature themselves?

    I can certainly see arguments for why mods shouldn’t be able to do some of these things - some suggest a level of disagreement that perhaps means the comm should find a new home (ban/remove/warn in particular) but the others don’t feel like they rise to the same level of disagreement, and I’d still argue that, for example, failing to post a frog (or at least a toad) should be moderatable activity.

    • Nutomic@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      Distinguish as moderator is only for comments, while feature is only for posts. Both of these are similar but different. I suppose we could rename “distinguish” to “feature” as well?

      For mod actions there is a simple api response field can_mod, and its always false if the other user is a higher ranking mod or admin. We dont distinguish between can_remove, can_feature etc because that would get too complicated.

      • I might have misunderstood these then - I assumed that removing admin/mod icons next to usernames was purposeful, and that “distinguish” instead allowed admins/mods to post without indicating that, while when they distinguish a post or comment it means “I am a mod/admin and am saying this as one” rather than participating “as a user”, meanwhile “feature”/pin would mean “this is highlighted” without necessarily being a post/comment from a mod/admin (though it could be) and without the “I’m saying this from my position of authority” meaning behind distinguish.

        • Nutomic@lemmy.mlOPM
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          Yes pretty much. Its just that “featured” is for posts, and “distinguished” for comments.

            • Nutomic@lemmy.mlOPM
              link
              fedilink
              English
              arrow-up
              1
              ·
              14 hours ago

              Its intentional because not every post and comment needs to show that a user is admin or mod. Makes it difficult to participate in normal discussions as everything looks like “official” communication. Also the distinguish feature was barely being used.

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

        Distinguish as moderator terminology comes from reddit, so its probably best to leave as is.

  • The superscript icon doesn’t handle links (or the markdown library handles it incorrectly?).

    This text:

    Rhino horns are a prized commodity on the black market, and organized criminal networks are involved in smuggling them from Africa to Asia. Image by [Rollison, Nan](https://www.fws.gov/media/rhino-horns) (Public Domain).
    

    Is converted to:

    ^Rhino\ horns\ are\ a\ prized\ commodity\ on\ the\ black\ market,\ and\ organized\ criminal\ networks\ are\ involved\ in\ smuggling\ them\ from\ Africa\ to\ Asia.\ Image\ by\ [Rollison,\ Nan](https://www.fws.gov/media/rhino-horns)\ (Public\ Domain).^
    

    Which does not render the link properly:

    Rhino horns are a prized commodity on the black market, and organized criminal networks are involved in smuggling them from Africa to Asia. Image by [Rollison, Nan](https://www.fws.gov/media/rhino-horns) (Public Domain).

    This markdown would render properly, maybe others would too:

    ^Rhino\ horns\ are\ a\ prized\ commodity\ on\ the\ black\ market,\ and\ organized\ criminal\ networks\ are\ involved\ in\ smuggling\ them\ from\ Africa\ to\ Asia.\ Image\ by^ [^Rollison,\ Nan^](https://www.fws.gov/media/rhino-horns) ^(Public\ Domain).^
    

    Rhino horns are a prized commodity on the black market, and organized criminal networks are involved in smuggling them from Africa to Asia. Image by Rollison, Nan (Public Domain).

    It also fails to handle multi-paragraph selections properly.

  • While federation between here and voyager clearly somewhat worked at one point, it seems like it’s currently broken. Before starting this test, I verified that Voyager has 1 local subscriber to this comm. I then upvoted a different comment from each instance, and commented on the one I upvoted from the other instance. Neither my votes or comments appear to have federated in either direction.

    On https://phiresky.github.io/lemmy-federation-state/site?domain=lemmy.ml voyager’s last successful activity has increased several times.

    On https://phiresky.github.io/lemmy-federation-state/site?domain=voyager.lemmy.ml I consistently get an error.

    I upvoted this comment on ml and commented on it from voyager: https://voyager.lemmy.ml/post/16766/13025#comment-13025

    I upvoted this comment on voyager and commented on it from ml: https://lemmy.ml/post/47547535/25761105

    • Nutomic@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 days ago

      voyager.lemmy.ml uses an allowlist for federation. Otherwise the server quickly gets overloaded when people subscribe to large communities on lemmy.world etc. You can test with enterprise.lemmy.ml (test instance with 0.19), and I can also allow other test instances.

    • ShinkanTrain@lemmy.ml
      link
      fedilink
      English
      arrow-up
      14
      ·
      10 days ago

      Affero General Public License? That sounds like it’s coming straight from Stalin’s mouth

      • Nutomic@lemmy.mlOPM
        link
        fedilink
        English
        arrow-up
        10
        ·
        11 days ago

        You need to be a community mod, and then go to the community settings (it’s a separate page now). In the settings theres a tab for managing tags.