Lemmy Lead Developer and father of two children.

I also develop Ibis, a federated wiki.

  • 8 posts
  • 0 comments
Joined 6 years ago
Cake day: January 17th, 2020

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

During the past month we finished the remaining, major tasks for 1.0 alpha. This means that we are ready to publish the first beta version in the next days! In particular we optimized database queries to have reasonable performance. While most are fairly efficient now, some are still too slow and would appreciate help from SQL experts.

@adrgs and @aisafe-bot found a few security vulnerabilities in the development version. Many thanks for doing this important work.

You can follow our development progress with these milestone links:

To see the new features and visual updates in production, you can visit voyager.lemmy.ml which deploys new changes every night. Please help by testing the new features and reporting any problems.

If you have any experience with web development or want to learn it, consider contributing to lemmy-ui. It is written in standard Typescript with Bootstrap. If you have experience with Kotlin or Android development, you can help contribute to Lemmy’s open source Android app, Jerboa.

Here are the major changes from April:

Full list of changes by user

kryoseu

dahlia

MazenSamehR

MV-GH

KiaraGrouwstra

matc-pub

Nutomic

dessalines

Or see the full list of changes at the links below:


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

This last month we worked on optimizing database queries for Lemmy 1.0. This was one of the major remaining tasks. We were also busy improving lemmy-ui with new lints and type checks to make it more reliable. Now that this is completed, you can expect the first 1.0-beta version to be published very soon!

On the stable branch we published two smaller bugfix releases which include security fixes. If you didn’t upgrade your instance yet, now is the time.

You can follow our development progress with these milestone links:

If you’d like to see the new features and visual updates in production, you can visit voyager.lemmy.ml which deploys updates every night. Please help by testing the new features and reporting any problems.

If you have any experience with web development or want to learn it, consider contributing to lemmy-ui. It is written in standard Typescript with Bootstrap. If you have experience with Kotlin or Android development, you can help contribute to Lemmy’s open source Android app, Jerboa.

Thank you to everyone who has helped out with finding bugs, testing, development, spreading the word about lemmy, and building communities. Your help has brought lemmy from an idea to one of the most vital pieces of software in the fediverse.

Here are the major changes from March:

Full list of changes by user

filippodb

EduardoLZevallos

smorks

matc-pub

dessalines

Nutomic

Or see the full list of changes at the links below:


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

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. Thanks to @flamingos-cant for contributing to resolve this.

Changes

This release mitigates a potential security issue with the image endpoint. In short, an attacker can inject query parameters and make proxied requests to arbitrary URLs. See the security advisory for details.

Also there are fixes for the database connection pool. The pool size is now at least two, as a lower size can result in deadlocks. Additionally there are now connection timeouts added. If your server logs show pool timeout errors, you should increase database.pool_size in the Lemmy config.

  • Fix for image proxy filetypes by @dessalines in #6357
  • Enable DB connection timeout by @Nutomic in #6355
  • Use min database pool size of 2. by @dessalines in #6345

Upgrade instructions

There are no breaking changes with this release.

Follow the upgrade instructions for ansible or docker.

If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

Thanks to everyone

We’d like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We’re glad many people find it useful and enjoyable enough to contribute.

Support development

We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.

Last month @Nutomic made some posts in !lemmy@lemmy.ml to get feedback and ideas for the official website join-lemmy.org:

Based on these we made various changes to the site. Most importantly, visitors can now register on a suggested Lemmy instance with a single click. Additionally the feature overview, app list, and instance list were reworked.

join-lemmy.org is one of the first search results for people who hear about Lemmy, and want to find out what it is. They should easily be able to register an account to become an active user, with as little friction as possible.

So if you have any suggestions for further improvements, please open an issue or comment below. We especially need help from designers to create better images and polish the design. You can also contribute by translating the site to your language via Weblate.


Now on to the Lemmy code itself. On this front it has been mostly the same as last month: Implementing the new backend features in the UI, bug fixing and minor backend changes. You can follow the progress with these milestones:

If you are impatient to see the new features in production, we share those feelings. But there is still a lot of work needed to make sure the new features work well and make for a good user experience. If you have any experience with web development (or want to learn it), you can also contribute. Checkout the lemmy-ui repo and the milestone above. It is written in standard Typescript with Bootstrap. Additionally you can help by testing the new version on voyager.lemmy.ml and reporting any problems.

Finally here are the major changes from January:

Full list of changes by user

matc-pub

iByteABit256

electricatgit

dankxiaobong

MV-GH

dessalines

Nutomic

Or see the full list of changes at the links below:


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

Last month saw more cleanup and bug fixes for the development version. We also setup nightly builds which are automatically deployed to voyager.lemmy.ml, as detailled in the 0.19.15 announcement post.

This upcoming month we’ll be working on the existing lemmy-ui 1.0 milestone and lemmy 1.0 milestone issues. Our work should be reflected nightly on voyager.lemmy.ml, so we’d much appreciate anyone helping to find bugs and issues

Here are the major changes from December:

Full list of changes by user

flamingos-cant

AcesFullOfKings

matc-pub

dessalines

Nutomic

Or see the full list of changes at the links below:


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

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. Thanks to @flamingos-cant for contributing to resolve this.

Changes

We messed up the previous release and did not include the full list of changes. In fact there were a handful of other bug fixes, and notably a maximum page limit of 10 to prevent a DDoS attack. Some users were also hitting this limit, so with this version the limit is increased to 100. We apologize for these mistakes.

Here is the full changelog since 0.19.13:

  • Don’t allow accessing page numbers greater than 10 by @dessalines #6017
  • Update deps based on cargo audit by @Nutomic in #6258
  • Increase page limit to 100 by @Nutomic in #6252
  • Ban federation for deleted users by @Nutomic in #6207
  • Federate mod actions on deleted users by @Nutomic in #6199
  • Allow admins to view deleted user profiles by @Nutomic in #6194
  • Adding creator and community indexes for post_aggregates. by @dessalines in #6025
  • Ignore apub person banners which cannot be parsed by @Nutomic in #6015u

Now for the good news, the development version of Lemmy 1.0 is available for testing on voyager.lemmy.ml with lots of new features. Registration is open, you’re welcome to create an account. Feel free to post spam and try everything out. Here is only a short overview:

  • Multi-communities: Combine 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 followers can view the content, and need to be approved manually by mods. Other community visibilities are also available (unlisted, local only).
  • New notification system: Including notifications for mod actions, and subscribing to communities and posts to be notified about new comments.
  • OAuth: Login to Lemmy with existing account from another website. Use this link to signup with your Github account (the UI still needs to be improved).
  • Post Tags: Categorize posts within a community (UI part not implemented yet).
  • User vote totals: You can see the total number of upvotes and downvotes given to each user.
  • User notes: You can keep notes on other users.
  • Combined Feeds: View your saved, liked posts and comments together in a single list.
  • Comment Locking: Mods can now lock comments recursively.
  • GDPR style data exporting: You can now export your full posting history as a JSON file.
  • Plugins: Can be written in JS, Python, Rust, and any other language that targets Webassembly. The test server has a plugin for automatic language tagging of posts.
  • Cursor pagination: Don’t lose your place in the feed when switching pages.
  • API v3 compat: Lemmy 1.0 can be used by existing apps with no changes (but most new features are only available via the new API v4).
  • More: Countless smaller features, bug fixes and improvements, too much to list here.

All the above mentioned features are already implemented and fully working, but may need some polishing. If you encounter any problems, please open an issue (backend, frontend). voyager.lemmy.ml is automatically updated to the latest development version every night, so that changes can immediately be tested.

Keep in mind that Lemmy 1.0 is still in alpha state. There may be breaking changes and critical bugs, so do not attempt to upgrade your own instances yet. We intend to publish the first beta version in January, along with API docs and upgrade instructions for test servers.

We hope that you are as excited about these new features as we are. With all this said, happy testing and Merry Christmas!

Upgrade instructions

There are no breaking changes with this release.

Follow the upgrade instructions for ansible or docker.

If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

Thanks to everyone

We’d like to thank our many contributors and users of Lemmy for coding, translating, testing, donating and reporting bugs. We’re glad many people find it useful and enjoyable enough to contribute.

Support development

We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.