Lemmy Lead Developer and father of two children.

I also develop Ibis, a federated wiki.

  • 15 posts
  • 0 comments
Joined 7 years ago
Cake day: January 17th, 2020

Last month we fixed a lot of the problems that were reported so far during 1.0 Beta Testing. These fixes are released in a new version 1.0.0-beta.1. Please continue testing on voyager.lemmy.ml and reporting problems.

Edit: Note the Lemmy backend version 1.0.0-beta.1 is still building, and will take about 12 hours to complete.

In the upcoming months, as app devs continue to give feedback on the Lemmy 1.0 API, we’ll be tweaking it as necessary. We’ll also be working on lemmy-ui and jerboa.

You can follow our development progress with these milestone links:

Here are all the changes from June:

Full list of changes by repo

lemmy

lemmy-ui

joinlemmy-site

lemmy-js-client

lemmy-client-rs

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 we published the first beta for Lemmy 1.0. A lot of problems have already been reported and fixed. You can try the new features and visual updates in production by visiting the test server voyager.lemmy.ml. It is automatically updated to the latest development version every night. Please help by testing the new features and reporting any problems.

We also opened issues for the various open source Lemmy apps, to notify them of the upcoming API updates, and get ready for the 1.0 release. If there is any client that we missed, please let the developers know about the new version update.

You can follow our development progress with these milestone links:

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 all the changes from May:

Full list of changes by repo

lemmy

lemmy-ui

joinlemmy-site

jerboa

lemmy-js-client

lemmy-client-rs

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.


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.

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.

An open source project the size of Lemmy needs constant work to manage the project, implement new features and fix bugs. Dessalines and I work full-time on these tasks and more. As there is no advertising or tracking, all of our work is funded through donations. Unfortunately the amount of donations has decreased to only 2000€ per month. This leaves only 1000€ per developer, which is not enough to pay my bills. With the current level of donations I will be forced to find another job, and drastically reduce my contributions to Lemmy. To avoid this outcome and keep Lemmy growing, I ask you to please make a recurring donation:

Liberapay | Ko-fi | Patreon | OpenCollective | Crypto

If you want more information before donating, consider the comparison with Reddit. It began as startup funded by rich investors. The site is managed by corporate executives who over time have become more and more disconnected from normal users. Their main goal is to make investors happy and to make a profit. This leads to user-hostile decisions like firing the employee responsible for AMAs, blocking third-party apps and more. As Reddit is a single website under a single authority, it means all users need to follow the same rules, including ridiculous ones like censoring the name “Luigi”.

Lemmy represents a new type of social media which is the complete opposite of Reddit. It is split across many different websites, each with its own rules, and managed by normal people who actually care about the users. There is no company and no profit motive. Much of the work is carried out by volunteer admins, mods and posters, who contribute out of enthusiasm and not for money. For users this is great as there is no advertising nor tracking, and no chance of takeover by a billionaire. Additionally there are no builtin political or ideological restrictions. You can use the software for any purpose you like, add your own restrictions or scrutinize its inner workings. Lemmy truly belongs to everyone.

Dessalines and I work fulltime on Lemmy to keep up with all the feature requests, bug reports and development work. Even so there is barely enough time in the day, and no time for a second job. Previously I sometimes had to rely on my personal savings to keep developing Lemmy for you, but that can’t go on forever. We partly rely on NLnet for funding, but they only pay for development of new features, and not for mandatory maintenance work. 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 Dessalines and I can stop worrying about money, and fully focus on improving the software for the benefit of all users and instances. Please use the link below to see current donation stats and make your contribution! 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.

Developer AMA

Next week we are going to hold an “Ask me Anything” where users can ask the Lemmy developers all sorts of questions. They will be answered by @dessalines and @nutomic who have been working on Lemmy since the beginning in 2019. Other maintainers may also chime in. You can ask about the beginnings of Lemmy, how we see the future of Lemmy, what makes Lemmy different from Reddit, internet and social media in general, as well as personal questions.

The AMA thread will be opened next Tuesday, March 25 in !announcements@lemmy.ml. We will start responding one day later. Until then you can let other people know about the AMA, think of good questions and read our previous AMAs:

Changes

  • Fix Youtube thumbnails by increasing the metadata fetch limit to 1 MB #5266
  • Also remove private messages when banning user with “remove content” (goodbye Nicole) #5414
  • Ignore accept-language header if no site languages are specified, to avoid that users have English disabled and can’t see most posts #5485
  • Enable english for users on instances with all languages enabled, to resolve the above problem #5489 #5493
  • Only list local banned users under /admin #5364
  • Add crawl-delay to robots.txt #3009
  • Optimize migrations which were included in 0.19.6 #5301

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.

Lemmy v0.19.9 Release

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.

Changes

This version fixes a potential security problem, by preventing Lemmy from accessing localhost URLs. There is also a fix for a crash during markdown parsing. Lemmy now uses mimalloc instead of the system allocator (usually glibc), which should improve performance and prevent unlimited memory growth over time.

Lemmy

Lemmy-UI

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.

Recently there seems to be some of misunderstanding what the lemmy.ml instance is about, especially from newer users.

Lemmy.ml has always been a niche site, and it will most likely stay this way. We don’t have any intentions to turn it into a mainstream instance, or set a goal of getting as many users as possible. Our goal is simple: make an instance that people like to use. I would say that we have been successful in this, but obviously it is impossible to satisfy everyone.

The reason for this is that @dessalines and I are paid to develop Lemmy, while donations from lemmy.ml users only make up a negligible part of our income. Besides, having more users would force us to spend more time moderating, and less time for development. Lemmy works quite differently from big tech sites like Reddit in this regard: while they get more money with each extra user through advertising, for us it is the opposite. So we would much rather have a smaller, non-toxic, and friendly userbase, than a large one.

Part of the problem might be that lemmy.ml is described as “flagship instance”, which can certainly be interpreted to mean “mainstream” or “general purpose”. I struggle to come up with a better, more accurate description. If you can think of one, please comment here.

If you dont like the way lemmy.ml works, thats okay. Federation exists exactly to solve that problem, let different groups have their own instances, with their own rules and political views. You can see the list of existing instances, and instructions for setting up a new one on join-lemmy.org.

In particular, I would like to see someone (or a group of people) create a mainstream, or liberal instance. That should help to avoid further drama, and avoid attempts to turn lemmy.ml into something that it is not. @dessalines and I would certainly be willing to help with any technical problems that such an instance runs into, and include it on join-lemmy.org (just like any other instance that meets the code of conduct).