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.
This last month we made a new stable release which significantly reduces RAM usage.
For 1.0 we fixed a few ActivityPub related issues, merged a change so that images are downloaded with correct filename, and worked on updating Jerboa.
In the upcoming weeks, we'll be devoting more time to getting Jerboa ready for 1.0, and continuing to fix any issues in the new code.
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 July:
Full list of changes
lemmy
- Fix readme images. by @dessalines
- Allow OAuth missing email. by @dessalines
- Make sure PostOrCommentCombined doesnt show deleted / removed bodies. by @dessalines
- Refactored report updates with update form and renamed resolve_reason to conclusion by @iByteABit256
- Update Rust formatting by @Nutomic
- Add Content-Disposition header for proxied images by @EduardoLZevallos
- Add report resolve reason by @iByteABit256
- Handle create post activity from Mitra (fixes #6577) by @Nutomic
- Switch to jemalloc by @Nutomic
- Change more activity types to accept both id or embed (fixes #2106) by @Nutomic
- Fix for accepting Mitra create activity (fixes #6577) by @Nutomic
- Proper fix for accept activity with object id (fixes 6595) by @Nutomic
- Add typos check to CI. by @dessalines
lemmy-ui
- Fixing readme images by @dessalines
- Fixing community paging. by @dessalines
- Changing renovate to monthly by @dessalines
joinlemmy-site
- Fix news title by @Nutomic
- 0.19.20 Release Announcement by @Nutomic
jerboa
- Support more image formats (AVIF, HEIC, ...) plus refactors by @MV-GH
- Remove duplicate translation key by @MV-GH
- Update baselineprofiles + tweak compose compiler config by @MV-GH
- Fix some deprecations by @MV-GH
- Expand Search Functionality by @MV-GH
- Changing renovate to monthly by @dessalines
- AGP 9 upgrade by @MV-GH
- Fix scroll stuck/glitchy in comments when scrolling up to an image by @MV-GH
- Fix lint due to new unescaped translation from weblate by @MV-GH
- Implement view pooling for AndroidViews by @MV-GH
lemmy-js-client
- Updated types after resolve_reason rename by @iByteABit256
- Ran copy script by @iByteABit256
- Changing renovate to monthly by @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.
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 release significantly reduces memory usage for the Lemmy backend. Metrics on production instances show a reduction up to 10 times. Here you can see the statistics from a few different instances. Read on for a technical explanation below. Note that the change only affects x86, there is no difference on ARM (e.g. Raspberry Pi), see here for details.
lemmy.ml (overall RAM usage including OS, Docker, PostgreSQL etc):

leminal.space (backend container only)

lemmy.world (backend API containers)

lemmy.world (backend federation and scheduled tasks)
How was such a major improvement possible? Memory usage in languages like Rust or C is managed by a so-called memory allocator. It requests large chunks of RAM from the operating system, and provides smaller chunks when needed in the program. For example, every string (such as post titles or markdown text) require chunks of memory to store them. When processing the data is completed, the memory should be freed and released, or reused.
Until version 0.19.19 Lemmy used the mimalloc memory allocator, which is supposedly better than the default glibc allocator. Yet a recent blog post points out that mimalloc does not play well with the tokio async runtime. It suggests to use jemalloc instead. Changing memory allocators is very simple in Rust, it only requires a single line of code. So we tried that, deployed the change on lemmy.ml and it immediately proved effective.
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.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
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:
- https://github.com/LemmyNet/lemmy/milestone/24
- https://github.com/LemmyNet/lemmy-ui/milestone/5
- https://github.com/LemmyNet/jerboa/milestone/1
Here are all the changes from June:
Full list of changes by repo
lemmy
- Handle accept activity with object id (fixes 6595) by @Nutomic
- Adding community moderators to GetPost by @dessalines
- Update activity count of dead communities (fixes #5794) by @w-k-s
- Adds additional attachments to end of post (fixes #6229) by @w-k-s
- Federate warnings (fixes #6326) by @Nutomic
- Fix for private community accept federation (fixes #6576) by @Nutomic
- Remove duplicate schema entry by @Nutomic
- Auto-approve private comm follows for admins/mods by @Nutomic
- Add child_count to modlog, used for bulk_action_parents. by @dessalines
- In nginx config use
$remote_addrby @Nutomic - Include your own private messages when using creator_id filter. by @dessalines
- Feature flag for plugins by @Nutomic
- Splitting out show_media and hide_posts_with_media user settings. by @dessalines
- Use correct Activitypub id for private community follow Accept/Reject (fixes #6561) by @Nutomic
- Adding post filtering by tag. by @dessalines
- Add missing permission checks for private community (fixes #6529) by @Nutomic
- Federate private message reports (fixes #4436) by @Nutomic
- Remove wrong community title check by @Nutomic
- Adding a few lemmy_api_common exports needed for lemmy-rs-client. by @dessalines
- Prevent user enumeration via login endpoint by @Nutomic
- Dont show community mods in pending follows list (fixes #6549) by @Nutomic
- Truncate federation displayname if too long by @Nutomic
- Reduce actor name min length to 2, make community.title optional (fixes #6509) by @Nutomic
lemmy-ui
- Revert "Update babel monorepo to v8" by @dessalines
- Showing community moderators on post page. by @dessalines
- Adding stacked mobile tables by @dessalines
- Fix mod / admin being able to comment on locked comment. by @dessalines
- Fix private community visibility check by @Nutomic
- Reduce actor name min length to 2, make community title optional by @Nutomic
- Adding ability to filter community page by tag dropdown filter. by @dessalines
- Adding hide memes filter to home and community pages. by @dessalines
- Hide notification icons without unread items on desktop (fixes #4205) by @Nutomic
- Add community context to pending follows list. by @dessalines
- Fix clipping in iOS Safari by @Trying2KnowMyself
- Add OAuth preset for Reddit (fixes #4124) by @Nutomic
- Show children for modlog items (fixes #4103) by @Nutomic
- Stricter CSP without style-src unsafe-inline by @Nutomic
- Make community title optional, reduce min actor name length by @Nutomic
- Fixing filter chip wrong background. by @dessalines
- Post / Comment listing fixes by @dessalines
- Change large card view to use full width by @Nutomic
- Swap library for markdown media embeds by @Nutomic
- Fixing a few typos by @dessalines
- Community tag colors by @dessalines
- Fixing empty body by not ignoring initialContent. by @dessalines
- Allow approve (after an accidental deny) to a private community. by @dessalines
- Notification display fixes by @dessalines
joinlemmy-site
- apps: default desktop visitors to web clients by @aeharding
- Add 0.19.19 release notes by @dessalines
- Adding codeowners by @dessalines
lemmy-js-client
- Modlist with get post by @dessalines
- Fixing tsoa build by @dessalines
- Add tag_id to GetPosts by @dessalines
- Split show media settings. by @dessalines
- Add child_count to modlog, used for bulk_action_parents by @Nutomic
- Fix request state by @dessalines
- API docs without RequestState by @Nutomic
- Make community.title optional by @Nutomic
lemmy-client-rs
- Adding release script by @dessalines
- Use a versioned lemmy_api_common by @dessalines
- Swap out cargo machete in favor of cargo shear by @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.
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
- On multi-comm creation check for duplicate (fixes #6546) by @Nutomic
- Admins and mods can view private community without following by @Nutomic
- Fixes for mod action check (fixes #4174) by @Nutomic
- 1.0 prefix for nightly version (fixes #6517) by @Nutomic
- Add missing private instance checks by @Nutomic
- Fixes for unlisted community by @Nutomic
- Add tags to PostReportView and CommentReportView. by @dessalines
- SearchResponse should use PaginationCursor (fixes #6518) by @Nutomic
- Add missing skip_serializing_none by @Nutomic
- Fix markdown link rewriting (fixes #6511) by @Nutomic
- Fix for OAuth registration answer by @Nutomic
- Fix for person content combined types by @Nutomic
- Remove CreateCommunity params icon, banner (fixes #6520) by @Nutomic
- Fix outdated documentation for SearchResponse by @MV-GH
- Increase default rate limit for settings import (fixes #6508) by @Nutomic
- feat: add RequireInvitation registration mode for invite-link-style signups by @kryoseu
- Import settings from Lemmy 0.19 by @Nutomic
- Dont specify exact pictrs version for docker by @Nutomic
- Check multi-comm owner during update by @Nutomic
- Fix cargo publish by @Nutomic
- Add ap_id to the fuzzy searching for community and person. by @dessalines
- Add plugin hooks for init and scheduled tasks (fixes #6488, fixes #6489) by @Nutomic
- For federated post feature, write modlog and validate community by @Nutomic
- Enable more lints for api tests by @Nutomic
- Make types internally public. by @cameroncros
- RequestState in api_tests WIP by @matc-pub
- Allow specifying bootstrap_instances without admin (fixes #6490) by @Nutomic
- Hide hidden posts from person/list_content by @dessalines
- Plugin hook for user deletion (fixes #6485) by @Nutomic
- Fixes for search pagination by @Nutomic
- Add validation for apub audience field by @Nutomic
- Skip links cleaning in code blocks by @tracyspacy
- Also build beta versions for ARM by @Nutomic
- Checking community_ids instead of
self.community_idfor post queries by @dessalines
lemmy-ui
- Only clear local storage markdown for success responses by @dessalines
- Update js client by @Nutomic
- Add missing signup inputs for OAuth (fixes #4151) by @Nutomic
- Fix dark/light mode for RBlind themes (fixes #4172) by @Nutomic
- Fix docker syntax by @Nutomic
- Don't show thumbnails for text posts. by @dessalines
- Change "Show sidebar", "Show subscribed" buttons (ref #4131) by @Nutomic
- Force show private comm sidebar on mobile (fixes #4163) by @Nutomic
- Fix error handling for image uploads (fixes #3892) by @Nutomic
- Reduce margins for select inputs (ref #4131) by @Nutomic
- 1.0 prefix for nightly version by @Nutomic
- Hide subscribe to communities for empty multi-community. by @dessalines
- Fixing display name max length check. by @dessalines
- Fixing chat view post fetches. by @dessalines
- Fix user note wrapping. by @dessalines
- Format buttons should not submit comment form by @Nutomic
- Fix OAuth login by prompting for username if needed (fixes #4108) by @Nutomic
- Better related posts in post form (fixes #4123) by @Nutomic
- Fixing image uploads. by @dessalines
- Fixing notifs overflow by @dessalines
- Fix rate limit error message for settings import/export by @Nutomic
- Fix community pagination by @Nutomic
- Add warning that private community sidebar is public by @Nutomic
- Clear markdown from local storage when submitting post and others by @Nutomic
- Update theme and language after login/register by @Nutomic
- Fix OAuth provider preset (fixes #4107) by @Nutomic
- Edit as mod should not be available for comments by @Nutomic
- Search pagination by @Nutomic
- Fixing default theme to check "browser" by @dessalines
- Use title_only for community search in PostForm by @Nutomic
- Hide mod/admin badges on post and comment listings by @Nutomic
- Add pnpm-workspace.yaml to Dockerfile by @dessalines
- RequestState without wrapping by @matc-pub
- Persist markdown content in local storage (fixes #4084) by @Nutomic
- Fix hide post from profile page (fixes #4071) by @Nutomic
- Also build beta versions for ARM by @Nutomic
joinlemmy-site
- Use relative url for suggested instance by @Nutomic
- Create 2026-05-19 - Open beta testing for Lemmy 1.0.0 by @Nutomic
jerboa
- Upgrade room-db-export to toast failure messages by @dessalines
lemmy-js-client
- Fix endpoint name adminListUsers by @MV-GH
- Update types by @Nutomic
- Upload check ok by @Nutomic
- markManyPostsAsRead (fixes #963) by @Nutomic
- Registration invitation by @Nutomic
- Fix image uploads by @dessalines
- Search pagination by @Nutomic
- Update readme to account for RequestStates by @dessalines
- Wrap responses in RequestState by @matc-pub
lemmy-client-rs
- Update readme with usage. by @dessalines
- Adding a codeowners file for PRs. by @dessalines
- Use
1.0IE v1-alpha asmainbranch by @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.
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.
- Resend verification endpoint exposes registered email addresses
- Private Lemmy instances expose multi-community metadata without authentication
- Private community data exposed through community, saved, liked, and modlog API views
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
- Walk prototype chain in wrapClient
- Define variables from _variables-dark.scss for dark themes
- Lint arrow function passed to removeEventListener using no-restricted-syntax rule
- Post time range input with nested dropdowns
Nutomic
- Add domain check when receiving federated ban
- Only show private community modlog items to followers
- Lint for unchecked_time_subtraction
- Check mod hierarchy when removing mod via federation
- Implement search pagination (fixes #6434)
- More internal IP checks
- Update to Rust 1.95, use cfg_select!
- Proper fix for nested comment fetch
- Fix federation of post removal by admin on user instance (fixes #6437)
- Increase timeouts for db pool
- Use internal IP check from apub lib, IP check for webfinger
- Restore search parameters
- Search adjustments (fixes #3995)
- Release 0.19.18
dessalines
- Check multi-community read for private instance.
- Fixing resend verification email.
- Don't allow private message edits for blocked users.
- Adding ability to search for post name and comment content on list saved
- Fixing warn modlog_constraint migration
- Adding a report list sort override.
- Fixing failing example.com federation tests.
- Same-table join DB optimizations.
- Fix arm builds 2
- Fixing a few test cleanups
- Only do ARM docker release builds on non-pre-release semver
- Try to fix woodpecker error.
- Fix select dropdowns.
- Fixing icon and banners.
- Trying to fix arm builds 2.
- Only do ARM docker release builds on full semver (no pre-release text)
- Show alt text feedback
- Make the viewerjs image animation faster.
- Consolidate gplay and fdroid versions using flavors
- Adding freedroidwarn
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.
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
- Renaming a few disabled / enabled fields on local_site and local_user
- Speed up post list queries
- Search optimizations
- Remove sleepless from codeowners.
- Some modlog speed optimizations.
- Adding some api speed tests
- Upgrade deps 2026 03 07
- Moving image settings from lemmy.hjson to database
- Adding resolved column to report_combined.
- Person combined optimizations
- Adding a faster list_hidden and read query, with indexes.
- Adding multi community sidebars, rename multi_community apub fields to match community
- Fixing file_type serialization for pictrs images.
- Arm qemu 1
- Fixing comment downvote after an upvote.
- Adding ability to filter by notification creator.
- Changing navbar badges to text-bg-danger, and rounded-pill.
- Commenting out arm builds for betas.
- Remove sleepless from codeowners
- Add bg-secondary-subtle to make placeholders more subtle.
- Fixing images being fetched at full size.
- Adding choices for multi-select. Removing SearchableSelect
- Adding 0.19.17 Release notes.
- Adding v0.19.16 release notes
- Adding
zh_Hant
Nutomic
- Launch new task to avoid stack overflow during nested comment fetch
- Add hack to improve Mastodon federation
- Upgrade dependencies
- Improve IP checks
- Add nodeinfo to js client
- Rename federation content field (fixes #6299)
- Upgrade apub library
- Dont let PM creator know that recipient deleted it
- Fix some todos
- Deny warnings from cargo shear
- Federate changes to community visibility (fixes #6382)
- Add missing feature full to fix test compilation (fixes #6379)
- Remove unused code
- Allow federated mod actions despite site ban (fixes #4409)
- Fixes for post/comment dropdown menu
- Remaining lints (fixes #3840)
- Lint no unsafe member
- Fix removing post url (fixes #3983)
- Lint to disallow use of any (ref #3840)
- Fix browser hydration (fixes #3964)
- Lint forbid get element
- New image changes (fixes #3921, fixes #3956)
- Fix lint no-unsafe-argument (ref #3840)
- Include suggested instances with /api/v1/instances/all
- Set CORS header
- Add type definitions
- Use filter chip dropdown for location select (fixes #568)
- Set status 404 if route not found (fixes #521)
- Remove lemmy.org from suggestions (ref #545)
- Add loading indicator
- Fix for instance suggestions by IP
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.

The charts above show growth of active users on thelemmy.club (left) and lemmus.org which are suggested on join-lemmy.org. It shows that improvements to the official project site really have a (small) influence on user growth. There are also a few new features:
This past month we've been working on lemmy-ui bug fixes and visual improvements, and a few remaining lemmy back end issues to get ready for the 1.0 release. We've closed over 20 lemmy-ui milestone issues, and have only a few remaining. The only major issue left is performance-testing, to ensure all our database changes and optimizations are working correctly.
You can follow our 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 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 February:
Full list of changes by user
malsadev
iByteABit256
flamingos-cant
dessalines
- Running cargo features prune
- Adding missing target columns for a lot of modlog actions.
- Dont check slur filter in apub verify, only rewrite them in from_json.
- Suggested community fixes
- Don't allow pool sizes below 2
- Allow viewing deleted tags, to be able to restore them.
- Adding viewer.js as an image expander.
- Add ability for mods to edit post nsfw and tags.
- In profile, dont show sort or view filters when uploads are selected.
- Cleaning up reports page.
- Fix enable_nsfw
- Fixing a first loading issue with create-post
- Fixing login / signup
- Making private message header bar match the others.
- Put show subscribed and show_sidebar on the same line as other selects.
- Adding loading as props, rather than faked as state
- suggested_multi_community_id
- Add dropdown labels
- Add show read post filter to home and community pages.
- Add consistent design for notification items.
- Add accept terms and conditions / legal checkbox on signup.
- Adding ability to mark comments as read from the notifications screen.
- Adding links and titles for community/multi-community settings.
- Fixing admin instance allows and blocks, adding filters and search.
- Close post editing form after saving.
- Responsive design rework for dropdowns and filters
- Fixing nonfinalresIds
Nutomic
- Include error cause in api response
- Rename translations folder
- Enable more lints from restriction group, use Rust 1.92
- Nested spoilers (fixes #5804)
- Move existing captcha logic to plugin (fixes #6148)
- Report to local instance admins should not be federated (fixes #6343)
- Fix random failure in tags test (fixes #6349)
- Sort outbox by newest first (fixes #6336)
- For federation make instance.published optional (fixes #6339)
- Enable connection timeout (ref #5112)
- Fix bug preventing comment fetch if parent creator deleted (fixes #6335)
- Disable link blocklist for federated community sidebar (fixes #6320)
- Add check for local instance in sitemap
- Add community, person last_refreshed_at to api
- Fix some wrong plugin hooks
- Rename translations folder
- Fix init for disallow_nsfw_content in site_form (fixes #3906)
- Captcha plugin
- Add admin setting for suggested communities (fixes #3434)
- Fix webpack warning by changing client target
- Fix lint no-floating-promises
- Fix lints for unsafe call
- Fix reload of admin settings (fixes #3884)
- Reduce vertical margins
- Show warning in community if instance is dead
- Fix vote percentage (fixes #3865)
- Add modlog input for community, communityId to query (fixes #3790)
- Remove usage of linkEvent (fixes #3791)
- Check if masonry is enabled before update (ref #3663)
- Remove permission for browser notifications (ref #3663)
- Enable typecheck lint (fixes #3812)
- Improvements for nsfw select
- Add endpoint for suggested instance (fixes #581)
- Darker theme colors
- Add nsfw select for instance list
- Upgrade to Infernojs 9
- Add lemmy.org to suggested (ref #545)
- Move suggested instances to state
- Add some more instance definitions, rename to InstanceMetadata
- Update readme
- Read gzip stats file, dont use async
- Changes to app screen
- Add chachara.club
- Instance filters in url
- Fix field name for crawl date
- Disable renovate
- Move app images to subfolder, remove unused
- Enable type checking, fix various lint errors
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.
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.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Last month @Nutomic made some posts in !lemmy@lemmy.ml to get feedback and ideas for the official website join-lemmy.org:
- [Help Design Lemmy] Joinlemmy website and New User Onboarding
- [Help Design Lemmy] How to describe Lemmy in a single Sentence?
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:
- Added colour field to community tags by iByteABit256
- Make bootstrap instances configurable by Nutomic
- Added dedicated community and multi-community settings pages by Dessalines
- Partial url search and normalization (fixes #4748) by Nutomic
Full list of changes by user
matc-pub
iByteABit256
electricatgit
dankxiaobong
MV-GH
dessalines
- Renaming tag -> community_tag
- Adding a ModlogKindDataType to modlog API endpoint.
- Using random username for denied user, in case of restarts
- Adding sort types for PersonQuery (IE admins) and LocalUserQuery.
- Upgrade pg_formatter to 5.9
- Fix private community content leaking in search and list person content
- Updating to account for changed tag and sidebars.
- Community tags
- Rename update to edit to match lemmy-js-client updates
- Fixing summary/description strings for new lemmy-js-client
- Adding a multi community settings page
- Move site settings and modlog to sidebar to match community.
- Fix missing emojis shortcode, remove linkEvent
- Fix incorrect login SSO class causing browser zoom.
- Get rid of crypto in favor of uuid.
- Add /feed urls to home, profile, community, and multicommunity.
- Removing all
binds from codebase - Community settings
- Don't allow post_url_only and post_title_only to be checked at same time in search.
- Fixing comment create and comment edit loading indicators.
- Show error for failed reports.
- Instead of using disabled for paginator buttons, hide them.
- Fixing unread comment count showing -1 .
- Add versioning for nightly builds.
- Support avif pictures
- Fix the test.sh script env vars.
- Add word escaping for superscript and subscript.
- Add create community/multi-community buttons to those pages.
- Fix icon overflows by using inline-flex.
Nutomic
- Upgrade reqwest, remove dependency aws-lc-sys
- Rename to sidebar again (fixes #6291)
- Change struct names from Update* to Edit* (fixes #6293)
- Move utils file to proper location
- Partial url search and normalization (fixes #4748)
- Ignore unknown tags on federated group (ref #6195)
- Enable pagination for VoteView (fixes #6162)
- Make bootstrap instances configurable (fixes #6260)
- Another fix for nightly versioning
- Correctly handle federated mentions (fixes #6218)
- Rename community.sidebar to description, and description to summary
- Various clippy fixes
- Fix nightly version by passing CI_PIPELINE_EVENT to Docker
- Add specific error for
/api/v4/resolve_objectwith more details - Remove webmanifest default description
- Show SSO buttons on registration page (fixes #3285)
- Show warning message to mods if community is not federated yet
- Post title on listing page should always open comments (fixes #3755)
- Use pattern to validate password length (fixes #3724)
- Change form-valid-border-color to green
- Hide deleted comments without children (fixes #3735)
- Change country to "hosted in", add continent filter
- Limit content width to 1024px
- Add regional topic (fixes #540)
- Use absolute link for news (fixes #441)
- Fix markdown rendering for news
- Cleanup recommended instances
- Remove unnecessary lint rules
- Update Dockerfile (fixes #549)
- Add missing isBrowser checks (ref #549)
- Remove glide
- Frontpage changes
- Use folder for crawl results
- Handle long country name for instances
- Update webpack
- Rename
pnpm starttopnpm dev - Filter instance list by user language (fixes #519)
- Filter apps by user agent
- Country filter using geoip, change stats (fixes #527)
- Add link to fediverse.observer map
- Use link icons (fixes #530)
- Add
featuredto Activitypub context (fixes #500) - Highlight app links for selected type, simplify definitions
- Downscale images
- Remove unused Plausible script
- Change Lemmyverse link to instance list
- Use biased random for instance list
- Rename Join to Sign Up in instance list
- Update donation amounts
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.
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:
- Enable source maps for lemmy-ui to simplify debugging
- Refactor and simplify cursor pagination logic
- Let admins ban deleted accounts
Full list of changes by user
flamingos-cant
AcesFullOfKings
matc-pub
- Use serde for rss feed parameters
- Autofocus search input fields only once
- Host address environment variable change
- Run prettier on a few more files
- Enable source maps
dessalines
- Adding search term filters for item type.
- Allow searching for content in a persons bio.
- Fixing Cargo.toml deps.
- Fix inconsistent federation tests.
- Fixing renovate, changing to weekends.
- Fixing incorrect data -> items for person_x_combined.
- Fixing PagedResponse ts-rs export.
- Upgrade to postgres v18.
- Use jauderho prettier image instead of tmknom.
- Disable broken arm release builds.
- Adding PostCommentCombinedView
- Adding API updates to support PagedResponse.
- Remove nightly build block for woodpecker
- Disable fastlane changelogs.
- Use resources.getString instead of ctx.getString or getString
- Use jauderho prettier
Nutomic
- Remove renovate
- Fix compiler warnings
- Merge count endpoints (fixes #6232)
- Remove unnecessary db queries for remove_like (fixes #6103)
- Separate struct for PublicOAuthProvider
- Remove some unnecessary derive macros
- Allow users to view their own removed content
- Correct version for nightly builds (fixes #6215)
- Fix remote follow in case there is a user with the same name (fixes #6206)
- Better logging for activity send error (ref #6212)
- Remove community visibility check (fixes #6165)
- Rename :dev docker tag to :nightly
- Rename PagedResponse.data to items
- Merge structs for PostCommentCombinedView (fixes #6167)
- Avoid specifying crate features multiple times
- Enable nightly builds (ref #6163)
- Dont use time delay in api tests (fixes #5925)
- Changes for plugin api
- Refactoring DB cursor code
- Increase cache duration for static assets to one year
- Fix ARM build by switching to Debian image (fixes #3682)
- Merge unread count endpoints
- Add OAuth preset for Github (ref #3285)
- Display resolved objects at top of search results (fixes #3656)
- Rename :dev docker tag to :nightly
- Enable nightly builds
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.
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.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
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
Recently some malicious users started to use an exploit where they would post rule violating content and then delete the account. This would prevent admins and mods from viewing the user profile to find other posts, and would also prevent federation of ban actions.
The new release fixes these problems. Thanks to @flamingos-cant for contributing to solve this.
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.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
We're still working hard on the 1.0 release, needing a few more major additions to lemmy-ui, and some less critical items for lemmy.
Then it will be a period of performance and bug testing, as well as giving time to allow app devs to update to the API changes.
The major changes during November were:
- Upgrade to latest Rust version 1.91 (after being stuck with 1.81 for over a year)
- Backwards compatibility with API v3
- Multi-community UI
- Adding an estimated time till approval to the signup page
- Merged modlog tables
Full list of changes by user
flamingos-cant
dessalines
- Use rusts Url::parse with post_url_only
- Add test for backslashes in urls.
- Adding multi-community counts, and full querying to
list_multi_communities - Mark post or comment notif as read after liking.
- Upgrading pg_format to 5.8
- Adding multi_communities_created to PersonDetails, and multi_community_follows to MyUserInfo
- Adding a last_application_duration_seconds field to GetSite.
- Adding multi_community_name to list_posts.
- Fixing ModlogKind comment.
- Updating .rustfmt edition to 2024
- Use a jauderho/prettier docker image.
- Upgrade inferno to 9.0.5
- Adding post_url_only to search page.
- Fixing show-score logic
- Adding an estimated time till approval to the signup page.
- Multi community support
- Open text post links in new tab (if setting exists).
- Fixing fastlane changelog
Nutomic
- Restore Activitypub audience field
- Sidebar federation
- Support more api v3
- Pull in rate limiter logic
- Compile db view joins in parallel, add instance join
- Various API route changes
- Disable old Mastodon workaround for empty names
- Fixes for merge modlog migration
- Notify mod actions fixes
- Change
multi_community_usertosystem_account - Crate
lemmy_diesel_utils - Add helper methods for resolve
- Add missing attribute optional_fields for ModlogView
- Support api v3
- Upgrade to latest stable Rust (fixes #6006)
- Show list of active plugins in sidebar
- Fix bug which prevented setting registration to open
- Fix bug with comments pagination (fixes #3612)
- Dont alter crosspost body for own post (fixes #3603)
- Notify about mod actions (fixes #3488)
- In image upload form hide preview and delete button if none
- Enable blank issues
- Merge modlog tables
- Make instance page working again (fixes #3571)
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.
During the past month, we've been working rapidly on adding features to lemmy-ui. We also finished up the last major backend changes. This means we can soon go to the beta phase for 1.0, which will focus on testing, bug fixing and helping Lemmy clients to start updating for the new API. After that will be the release candidate phase when version 1.0 will be live tested on lemmy.ml.
You can see the changes in action on the test server voyager.lemmy.ml (which was recently wiped). Registration is open, you are welcome to try things out. To stay up to date with our progress look at the lemmy-ui 1.0 and lemmy 1.0 milestone issues.
The major changes during October were:
- Speeding up migrations for 1.0 and reducing database size
- Notify users about moderation actions
- Default data for new instances (welcome post and popular communities)
- Card views for post listing
- Showing community sidebar on create post page
- Blurhash for images
Full list of changes by user
matc-pub
dullbananas
SleeplessOne1917
MV-GH
dessalines
- Remove special BanFromCommunityResponse in favor of PersonResponse.
- Multi-community-feeds should be at /m/ , not /c/
- Fixing a few issues with federation-view exports.
- Fix release builds by remove space in platforms.
- Add comment for
is_upvoteAPI fields. - Make sure creator_banned uses item_creator for ReportCombinedView
- Make all the serde tagged types snake_case
- Adding read bool to mark_many_as_read API.
- Make sure create_multi_community_entry returns the community.
- Fixing admin instance block expires_at to use a unix timestamp, with a check.
- Making multi-community follow and edit return a MultiCommunityResponse.
- Add wait after delete user to fix federation CI tests.
- Changing NotePerson response from SuccessResponse to PersonView
- Adding follow_state to MultiCommunityView
- Adding creator and community indexes for post_aggregates.
- Clean up post and comment actions bars
- Adding enable_animated_images, and hide_media setting.
- Adding support for stay_logged_in to login and signup fields
- Adding community description to form and community sidebar.
- Add blurhash image using unlazy.
- Adding collapse_bot_comments setting, and doing that action.
- Upgrading for new API updates
- Adding card and small card views
- In instance settings move admin list to users tab
- Fixup instance_blocks.tsx
- Add more settings
- Fix link-dark issues
- Remove tables in favor of bootstrap columns
- Use btn-sm for post and comment actions buttons.
Nutomic
- Remove some unused code
- Small compile speed optimizations
- Revert changes to crud trait which slowed down compilation (ref #5874)
- Retry tests in ci on failure (ref #5925)
- Handle plain identifiers in markdown
- Setup default data for new instance
- Fix wrong federation error and simplify code (fixes #4363)
- Implemente federated instances view (fixes #6063)
- Expire logins after one week by default, add param
stay_logged_in - Create plugin hook for new notifications and reports (fixes #1027, fixes #5349)
- Fix for NodeBB compat and updated test assets
- Include caller information in error logs
- Include id for CommunityHasNoFollowers
- Auto-follow community when enabling notifications (fixes #6081)
- Serialize enum variants in snake_case (fixes #6062)
- Dont send duplicate notification in case of reply with mention
- Include keyword blocks and discussion languages in backup (fixes #5811)
- Use proper title for replies and mentions in RSS feed (fixes #5357)
- Private community fixes
- Add build.rs to update db migrations macro (fixes #6005)
- Allow users to view comments of deleted posts (fixes #6044)
- Multi-community fixes
- Proper error message for image upload (fixes #6042)
- Case insensitive comparison for read_from_apub_id (fixes #6037)
- Move some errors to not be translated
- ReportCombined: add missing column creator_ban_expires_at
- Allow mods to resolve removed posts (fixes #6018)
- Split apub code into multiple crates, other changes for faster building
- Notify mod actions
- Remove env var LEMMY_UI_HTTPS (fixes #3573)
- Check for untranslated error messages (fixes #3478)
- Use localhost as testhost
- Private community
- Use upstream status code for error responses (fixes #3085)
- Change format for inserted person/community links (fixes #1743)
- Consistent size for action buttons (ref #3503)
- Disable comment form if post is removed or deleted
- Revert "Add button to expand all images"
- Enable some lint rules for jsx
- Block community from context menu (fixes #3306)
- In comment search results show post and community (fixes #1959)
- Open link for markdown help in new tab (fixes #2129)
- Add rel=nofollow to markdown links (fixes #542)
- Show sidebar on create post page (fixes #1522)
- Add audio player for direct links to audio files (fixes #2529)
- Fix "show context" (fixes #3496)
- Indicate removed/deleted comments (fixes #1144)
- Use lint to disallow console.log
- Filter community selection for posting (fixes #2604)
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.
It's been a busy month, with a lot of work to add new features to lemmy-ui which were already added to the Lemmy backend before. There were also a lot of bug fixes for the development version. We are gradually getting closer to a 1.0 release.
While the API changes for 1.0 are mostly finalized, we still have many more lemmy-ui 1.0 tasks to complete.
Some of the major additions:
- Simplified lemmy-ui development.
- Audio file support in lemmy-ui.
- Added comment locking (which also locks children). Thanks to @flamingos-cant)
- Post time filtering, with a smart dropdown.
- Added ability to block all users from an instance (separate from blocking all communities)
- Added ability to make a note for a person, and view the vote totals you've given to them.
- Fixed remote RSS feeds.
- Added ability to do actions on report items, from the reports page.
Full list of changes by user
salif
Meri-Dax
flamingos-cant
- Use more standard AP fields for community tags
- Don't populate embed fields when the Opengraph tag is empty
- Add urls for moderators and featured collections on local communities
- Comment lock
MV-GH
- Restore deprecated apk post processing config
- Regenerate baseline profiles
- Bump to Android SDK 36
- Fix too large images in comments being cutoff
- Add option to disable video auto play
dessalines
- Fixing missing shortcode from emoji updating.
- Validate saving default_items_per_page local user setting.
- Fixing show_scores -> show_score DB name.
- Fixing
LockCommentandModLockCommentView - Fixing local_user table column order.
- Adding type_ to
PostOrCommentOrPrivateMessageenum. - Fix post like not decrementing vote totals.
- Add ability to mark a notification as unread.
- Changing rss inbox feed -> notifications
- Fixing admin list users not using query.
- Adding
ban_expires_atto views - Adding a post undelete delay to fix federation tests.
- Add voyager development as the default test server for test.sh
- Adding default posts_per_page setting.
- Add ability to lock comments
- Adding post time filtering with defaults.
- Upgrading pnpm to 10.16
- Collapse removed comments that have no children by default.
- Updating to new 1.0 names.
- Adding ability to visit a random community.
- Highlight new comments using the last read comments time.
- Fixing scheduled publish time.
- Adding read and hidden content for your profile.
- Add ability to show banned users and all users.
- Fixup notifs
- Add @nutomic to codeowners
- Fix profile radios spacing.
- Add ability to block all persons from an instance.
- Add ability to create a note for a person, and view vote totals
- Add ability to resend verification email.
- Use the
getCommentsSlimvariant for post comments. - Fixing build tools to version 36.0.0
Nutomic
- Include error message for rate limit error (fixes #6019)
- Proper null check for mod-reason-mandatory (fixes #6021)
- Update dependencies, use latest diesel-cli
- Set image_mode: None for development
- Correct name for instance default theme
- Avoid unnecessary requests to w3.org (fixes #5999)
- Fix remote user/community rss feeds (fixes #5997)
- Dont allow write api actions for banned user
- Exclude
LocalSite.multi_comm_followerfrom public api - Let banned users login
- Make reason mandatory for mod actions (fixes #1948)
- Remove local_user.enable_keyboard_navigation (fixes #5988)
- Rename FederationState.next_retry and NotificationType
- Rename person banned columns
- Show most used languages first
- Restrict max length of community title
- Reenable plugin hook (fixes #5925)
- Sorting for instance list
- Print diff-check errors to stdout (fixes #5937)
- Avoid regenerating metadata for unchanged post url (fixes #5956)
- Dont allow removing only mod/admin, remove leave_admin endpoint
- Provide federation context collection (fixes #5283)
- Add report actions (fixes #501)
- Convert buttons for view all, show context to links (fixes #3229)
- Enable various lints
- Enable alt text for videos (fixes #2779)
- Fetch emoji data separately (fixes #3470)
- Downscale proxied thumbnails (fixes #2591)
- Insert emojis at current cursor position (fixes #1983)
- Simplify translation code
- Fix Arabic user/community names (fixes #2207)
- Correct name for instance default theme (fixes #2371)
- Fetch similar posts when copying suggested title (fixes #2029)
- Fix community link in modlog title (fixes #2209)
- Properly render multi-line deny reason (fixes #3103)
- UI changes if current user is banned (fixes #989)
- RSS feed should use local domain (fixes #2012)
- Add button to expand all images (fixes #1273)
- Remove env var LEMMY_UI_DEBUG, use NODE_ENV instead
- Add new modlog filters
- Extend readme
- Improve development instructions to use remote instance
- In search results show number of posts/comments for users/communities
- Add checkbox for title only search (#3220)
- Use params instead of string concat (fixes #1350)
- Setting for community/post notifications
- Extend admin user list with more info
- Allow blocking community that banned you (fixes #3267)
- Multiple language input using checkboxes (fixes #1935)
- More details about crossposts (fixes #3386)
- Instance list changes (fixes #3261)
- Respect link target for post domain (fixes #3256)
- Show community languages in sidebar (fixes #1009)
- Implement donation dialog
- Hide bio for banned users (fixes #961)
- Indicate when registration is disabled (fixes #2070)
- Add icon to indicate new accounts (fixes #2389)
- Remove outline for username button
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.
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 handful of bugs. Most importantly it prevents a background task from blocking the Lemmy server entirely. Edit marks on comments are now hidden if it was edited within 5 minutes of creation. Also the browser cache usage is significantly reduced. Additionally ARM builds are fixed by using the default memory allocator on that platform.
Backend
- Fixing active counts slow queries. by @dessalines in #5907
- Only use mimalloc on x86 and purge images in background task by @Nutomic in #5893
- Add missing comment depth check by @Nutomic in #5842
- Dont sanitize RSS content manually (fixes #5850) by @Nutomic in #5852
- Reduce false positives in URL blocklist to reduce scunthorpe problem by @Nothing4You in #5807
Frontend
- Don't show edit mark if comment was edited in less than 5 minutes by @jfaustino #3197
- Increase bio max length to 1000 chars by @nutomic #3249
- Change link from element.io to matrix.org by @nutomic #3250
- Remove all caches (fixes #3195) by @Nutomic in #3248
- Fixed ordering for search results by @Nutomic in #3219
- Add search field to community sidebar by @Nutomic in #3217
- Add checkbox for title only search by @Nutomic in #3220
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.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Many of us are currently on summer vacation, but there are a few important additions this last month:
- Thanks to monumental efforts by @matc-pub and @sleeplessone1917, lemmy-ui is now updated to work with the new lemmy 1.0 API, and all that's needed is to support the new features, and work out a few more bugs. Special thanks to both of them for their work.
- MV-GH added video support to jerboa, and has been doing a lot of bug-fixes there.
- @dullbananas has a PR which optimizes some migrations significantly and reduces DB size, which will likely be merged after some code reviews soon.
- We added 1.0 milestones for both lemmy-ui and jerboa, to make sure every new feature gets added to the front ends.
Full list of changes by user
matc-pub
dullbananas
MV-GH
- Add Video screen viewer, FeedVideoPlayer, plus support for popular non OGP videohosts.
- Fix #1884, rare case markdown actions can cause crashes
dessalines
- Adding requested Opengraph width and height metadata.
- Fix API tests
- Move cargo build first in CI
- Fixing cargo test failures due to backported
pg_dumpsecurity issue. - [main] Fixing active counts slow queries. (#5907)
- Fixing administration typo
- Updating to newer git cliff.
- Use a better library to sort package.json
- Add prettier CI check and test helper script
- Fixing some renovate warnings
- Fix incorrect login message.
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.
Work on the backend changes for 1.0 is mostly finished now. What's missing is optimizing the migrations as they currently take about 9 hours for lemmy.ml. Now we are starting to work on updating lemmy-ui for the API changes and new features.
In the last days we did a big cleanup of the lemmy-ui issue tracker, closing 450 mostly outdated issues. Many of these were over a year old describing problems that have long been fixed. From 570 issues only 120 remain. Most of these are very minor, changing a single UI element here or there. It should be possible to implement 90% of them within a month or two.
Here are some of the major changes made over the past month:
- Add ability to block all users of an instance (#5784)
- Notifications rewrite, users can be notified about new posts or comments (#5604)
- Post tags (#5869)
- Site and user setting for items per page (#5887)
- Don't show edit mark if comment was edited in less than 5 minutes (#3197)
- Speedup of 1.0 migrations (#5873)
Full list of changes by user
jfaustino
- Change textarea placeholder for locked posts
- Don't show edit mark if comment was edited in less than 5 minutes
SleeplessOne1917
- Re-export UpdateCommunityNotifications
- Re-export some types from lemmy-api-common
- Add missing TS derives that were causing errors when generating Typescript bindings
- Add
creator_bannedto VoteView
dessalines
- Adding a local_site and local_user setting for default fetch limit
- Add ability to block all users of an instance.
- Fast history no background
- Fixing username-instance duplicate migration.
- Don't export inbox combined view internal.
- [Main] remove all caches
dullbananas
- Add update_schema_file.sh
- Refactor pagination cursor parsing
- Speed up init in start_dev_db.sh using no-sync option
- Fix comment depth test
- Prevent stack overflow when fetching nested comment
- Require indexes for all foreign keys
- Use a new separate crate for uplete
- Allow running all migrations with minimal dependencies
Nutomic
- Use case insensitive sort for followed communities (fixes #5903)
- Merge different
AlreadyExistserrors (fixes #5897) - Properly parse icons federated from Peertube (fixes #5894)
- Rename modlog items
- Refactor email
- Only use MiMalloc on x86_64 target arch (fixes #5695)
- Purge user images in background task (fixes #4642)
- Finish adding post tags
- Allow remote groups to follow Lemmy communities (fixes #5354)
- Fix foreign key indexes migration
- Remove unused items
- Notifications rewrite and post following (fixes #3069)
- Add unique constraint for person(name, instance) (fixes #5045)
- Extism release version
- Delete report views, add missing report fields
- Update extism
- Federation refactoring
- Fix comment depth off by one
- Move local site user count updates to scheduled task
- Revert " Add post_actions.disable_notifications (fixes #3042) (#5826)"
- Add missing comment depth check
- Dont call resolveObject for search
- Change icon for save action (fixes #1564)
- Use anchor for comment permalinks (fixes #2908)
- Only cache success responses (fixes #3129)
- Redirect away from /setup page if already created (fixes #897)
- Update regex for validating matrix id (fixes #1726)
- Fix host splitting for IPv6 (fixes #2374)
- Increase bio max length to 1000 chars (fixes #2657)
- Change link from element.io to matrix.org (fixes #2293)
- Search changes
- Change display format for community name in search
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.
This was a busy month, with ~80 pull requests merged, as we're trying to get all the breaking changes we can added before the 1.0 release.
The release is still several months away, as even after finishing up the rest of the 1.0 milestone issues, we still have to add this new functionality to Lemmy-UI and Jerboa, and do extensive testing.
Here are some of the major changes made over the past month:
- Added multi-communities (One of the most requested features).
- Added a new rate limiting library.
- Refactored the API structs and library for better usage in Rust projects.
- Improved the migration diff checker.
- Using an external library for checking invisible characters.
- Votes are now removed when banning + removing data.
- Added a GDPR style data export.
- Storing upvote / downvote totals you gave to each user, and a setting to display that history next to their name.
- Added ability to make a note for a user.
- Added an RSS feed for modlogs.
- Added an API action to get liked / disliked content.
Full list of changes by user
Lemmy:
- Improve migration diff check and fix old migrations (#5204) dullbananas
- Implement multi-community (fixes #818, fixes #5340) (#5601) Nutomic
- Add endpoint to get Liked / Disliked comments and posts. (#5616) dessalines
- Add permitted display characters check for post titles (#5692) SleeplessOne1917
- Adding Modlog RSS feed. (#5708) dessalines
- Decrement fail_count instead of reset to 0 (ref #5716) (#5717) Nutomic
- Leave mod teams on account deletion. (#5721) dessalines
- Throw error if the removed code_migrations.rs needed to run but didn't (#5723) dullbananas
- Fix assumption that is_err always means the local site doesn't exist, which may cause the local site's keypair to be regenerated (#5724) dullbananas
- Simplifying transaction call (#5703) (#5726) momentary-lapse
- Switch to library for rate limit (fixes #5550, fixes #5548) (#5731) Nutomic
- Dont run scheduled tasks at startup (ref #5716) (#5732) Nutomic
- Adding proper NSFW filtering to search, based on user settings. (#5733) dessalines
- Move lemmy_api_common structs to view crates, make a lemmy_api_utils crate (#5735) SleeplessOne1917
- [0.19] Decrement fail_count instead of reset to 0 (#5737) Nutomic
- [0.19] Update user count from local_user table instead of person table, and only count users with accepted application (#5738) Nutomic
- Mark some *Action struct fields as serde(skip) (ref #5532) (#5739) Nutomic
- [0.19] Only use HTTP/1 (#5744) flamingos-cant
- [0.19] Dont run scheduled tasks at startup (#5732) (#5745) Nutomic
- Pin cargo-workspaces version (#5746) Nutomic
- Test case for activity send errors (#5747) Nutomic
- Revert "[0.19] Downscale proxied thumbnails (#5686)" (#5751) Nutomic
- Resolve objects as part of search api call (fixes #5740) (#5752) Nutomic
- Specify rust 1.81 (#5754) Nutomic
- Update extism (#5755) Nutomic
- Fix lemmy_federate test (#5756) Nutomic
- Fix lemmy_federate test (again) (#5757) Nutomic
- Use invisible_chars library (#5759) dessalines
- Rename timestamp fields to
_at(#5761) dessalines - Upgrading deps. (#5764) dessalines
- Adding ability to make a note for a given person. (#5765) dessalines
- 0.19 specify rust 1.81 (#5766) Nutomic
- Remove feature
fullfor api_utils (#5767) Nutomic - Rename upgrade check migration to run first (#5768) Nutomic
- Remove private instance check for get image (fixes #5763) (#5769) Nutomic
- [0.19] Remove private instance check for get image (#5770) Nutomic
- Make search query mandatory (#5772) Nutomic
- Parallel sql format (#5773) Nutomic
- Keep rustup home dir between ci steps (#5775) Nutomic
- Enable urlencoding for pictrs proxy parameter (fixes #5749) (#5776) Nutomic
- Upgrading ts-rs, and adding feature flag (#5777) dessalines
- Implement multi-community search (fixes #5778) (#5779) Nutomic
- Use binstall for diesel-cli (#5780) Nutomic
- Move db_perf check to unit test (#5781) Nutomic
- Fixing a few optionals. (#5782) dessalines
- Small
lemmy_api_common/db_viewsfixes/tweaks (#5783) SleeplessOne1917 - Keep totals of upvotes and downvotes given to each user. (#5786) dessalines
- Test migrations improvement (#5788) momentary-lapse
- Replace most uses of context.reset_request_count() with clone() (#5790) Nutomic
- chore: replace nightly API Duration::from_days with Duration::from_secs (#5791) Integral-Tech
- Add incoming activity hook for plugins (#5792) Nutomic
- Remove ts-bindings null check from CI. (#5795) dessalines
- More re-exports (#5796) SleeplessOne1917
- Delete scripts/ts_bindings_check.sh (#5797) Nutomic
- Fix migration local_image_person (#5799) Nutomic
- Optimize migrations (#5800) Nutomic
- Adding GDPR-style data export (#5801) dessalines
- Move config updated check to unit test, use diffy (#5803) Nutomic
- Removing an existing deferrable constraint, and fail test if any constraint is deferrable. (#5806) dessalines
- [0.19] Reduce false positives in URL blocklist to reduce scunthorpe problem … (#5807) Nothing4You
- Remove
creator_*_actionsfields from api (ref #5532) (#5808) Nutomic - Set
Accept: Varyheader for federation endpoints (fixes #5632) (#5809) Nutomic - Remove votes when ban + remove data for a site or community. (#5810) dessalines
- Fixes for "Move config updated check to unit test, use diffy" PR (#5812) dullbananas
- Remove outdated comment about deferrable constraints in triggers.sql (#5813) dullbananas
- Fix db_perf.sh (#5815) dullbananas
- Optimizing person_content_combined migration. (#5819) dessalines
- Fixing docker_update.sh script to not add context. (#5820) dessalines
- Optimizing a few more combined migrations (#5821) dessalines
- Better way to check if we should accept activity in remote community (#5823) Nutomic
- Rename rate limit columns (fixes #5805) (#5824) Nutomic
- Send Undo/Dislike activity (fixes #4465) (#5825) Nutomic
- Add post_actions.disable_notifications (fixes #3042) (#5826) Nutomic
- Revert "Use same federation keypair for all new users and communities (#5709) (#5830) Nutomic
- Drop table person_ban (fixes #5828) (#5831) Nutomic
- Use vec_into (#5833) dessalines
Lemmy-ui:
- Show upvoted posts, comments in user's profile (#3057) Tyoda
- Add a denial reason using the error.message field. [0.19] (#3175) dessalines
- Add a denial reason using the error.message field. [main] (#3176) dessalines
- Fix spoiler escaped characters (#3181) bryewalks
- Hide Next button for Overview, Saved, Upvoted (#3182) Tyoda
- Click anywhere on byline to collapse a comment (#3198) philip-peterson
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.
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 release includes various minor improvements and bug fixes.
Backend
- Fix Peertube federation by @flamingos-cant in #5652
- Show NSFW content by default if content_warning exists by @xaegit in #5655
- Register users in a transaction by @Nothing4You in #5608
- Fix email notifications for denied applications by @Nutomic in #5641
- Dont run scheduled tasks at startup by @Nutomic in #5732
- Only use HTTP/1 for federation by @flamingos-cant in #5744
- Update user count from local_user table instead of person table, and only count users with accepted application by @dullbananas in #5495
- Decrement fail_count instead of reset to 0 by @Nutomic in #5737
- Fix opentelemetry by @MrKaplan-lw in #5702
- Fix post listing in nsfw communities by @Nutomic in #5698
- Add missing post_read / hide / saved post_id indexes by @dessalines in #5689
- Improve media deletion logic by @Nothing4You in #5677
- Include published in VoteView order by for more consistent pagination by @MrKaplan-lw in #5676
- Mark posts in NSFW communities as NSFW by @Nothing4You in #5646
- Use version from git to indicate unreleased changes by @MrKaplan-lw in #5622
Frontend
- Add Rblind theme by @travis-jeans in #3159
- Remove browser cache by @SleeplessOne1917 in #3150
- Show registration denial reason on login by @dessalines in #3175
- Always escape HTML attributes in emoji autocomplete and custom emoji markdown renderer by @Nothing4You in #3169
- Fix missing user badge for deleted users by @MrKaplan-lw in #3162
- Add hungarian language by @dessalines in #3158
- Fixing cache-control header. by @dessalines in #3148
- Disable blur for NSFW images by default if content_warning exists by @xaegit in #3128
- Add
Vary: CookieHeader (fixes #3117) by @xaegit in #3119 - Use alert-info for donation dialog by @dessalines in #3115
- Optimize Dockerfile by @Nothing4You in #3090
- Add support for using Lemmy UI with an external Lemmy instance by @SolninjaA in #3041
- Only show View registration button to admins on profiles of local users by @Nothing4You in #3072
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.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here are some of the major changes made over the past month:
- @travis-jeans added themes from RBlind.com to lemmy-ui (#3159).
- @Nothing4You made improvements for media deletion and purging
- @momentary-lapse also improved image deletion, and cleaned up database forms.
- @dullbananas implemented federation for community reports (#5496)
- @xaegit made changes to show nsfw images by default if content_warning is enabled.
- @SleeplessOne1917 removed the browser cache for lemmy-ui which will reduce storage use.
- @dessalines worked on various changes for the 1.0 release.
- @nutomic made different changes to speedup compilation, and reported bugs with slow compilation in Rust (first, second).
Full list of changes by user
travis-jeans
MrKaplan-lw
- [0.19] Fix opentelemetry (#5702)
- [0.19] Include published in VoteView order by for more consistent pagination (#5676)
Nothing4You
- [0.19] Improve media deletion logic (#5677)
- [0.19] Remove unnecessary pictrs purge calls (#5566)
- Always escape HTML attributes in emoji autocomplete and custom emoji markdown renderer (#3168)
Dullbananas
matc-pub
momentary-lapse
- Deleting local image from db only if pict-rs client returned OK (fixes #5671) (#5680)
- Optional columns are handled correctly in insert and update forms (ref #5672) (#5675)
xaegit
- Show NSFW content by default if content_warning exists (release/0.19) (#5655)
- Disable blur for NSFW images by default if content_warning exists (#3120)
Add
Vary: CookieHeader (fixes #3117) (#3118)
SleeplessOne1917
Dessalines
- Add missing post_read / hide / saved post_id indexes. [release/v0.19] (#5689)
- Order vote view tie-breaker to use like published time. (#5683)
- Removing hide_modlog_mod_names setting. (#5681)
- Adding reason for mod_lock_post. (#5670)
- Change
local_imageto referenceperson_id, to track thumbnail creators. (#5664) - Only remove email on account deletion, if the user wasn't banned. (#5650)
- Adding ability to show downvotes for other users only. (#5644)
- Remove api v3 routes. #5508 (#5516)
- Add hungarian language (#3157)
- Fixing cache-control header. (#3147)
Nutomic
- Fix build_args for release builds (fixes #5718) (#5719)
- Remove unnecessary InCommunity impls (fixes #5700) (#5715)
- Cleanup root folder of repo (#5712)
- Get rid of code_migrations.rs (#5710)
- Use same federation keypair for all new users and communities (#5709)
- Write to mod_change_community_visibility table (fixes #5704) (#5706)
- Remove VoteView.item_id, SiteResponse.taglines (#5705)
- Fix post listing in nsfw communities (fixes #5685) (#5699)
- [0.19] Fix post listing in nsfw communities (#5698)
- [0.19] Upgrade dependencies (#5696)
- Deny
asconversions (#5688) - [0.19] Downscale proxied thumbnails (#5686)
- Remove some api_common dependencies (ref #5642) (#5678)
- Downscale proxied thumbnails (fixes #5673) (#5674)
- Add list of local user accounts for admins (fixes #4419) (#5668)
- lemmy_federate should not depend on lemmy_apub (ref #5614) (#5667)
- Add comments for site/instance (#5666)
- Avoid constant rebuilding due to git version (#5665)
- Split apub code into multiple crates (ref #5614) (#5663)
- Move db_views crates into subfolder (#5662)
- Fix email notifications for denied applications (fixes #5635) (#5641)
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.
Announcements
Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.
You can also find major news on join-lemmy.org