
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.
Starting now, we are changing the dev update to a monthly schedule. This is more predictable and gives us more time to write it.
Last month saw the release of Lemmy 0.19.11. It included a lot of changes backported from the development branch. This way improvements can already reach users while the main branch is still under heavy development in preparation for the 1.0 release.
There were numerous other contributions:
- Leoseg added a new keyword filter.
- SolninjaA added support for using separate subdomains for federation and web interface.
- travis-jean@rblind.com made various accessibility improvements to the UI.
- @xaegit@lemmynsfw.com added some NSFW-related fixes.
- Nutomic and Flamingo-cant@feddit.uk fixed different federation bugs and got Peertube federation working again.
- Nothing4You and Matc-pub also contributed different bug fixes, speedups, and picture fixes.
- MrKaplan@lemmy.world helped with some release-related tasks, and backported some existing mainline bug-fixes.
On the 1.0 front Dessalines was busy with different rewrites of the database to improve pagination, adding read, liked, and hidden content endpoints, speeding up compilation time, and also getting lemmy-ui updated.
For Lemmy to have a future, it's been a long-term goal to ensure that donations can cover the two full-time devs' living expenses, and possibly add more developers to the co-op. Nutomic worked on various tasks to aid this, including:
- A redesign of the donation page on join-lemmy.org.
- A new donation dialog shown directly in the Lemmy web interface.
- A call for donations which was widely shared and discussed.
Although the goal is not reached yet, it looks like a success as the amount of recurring donations was almost doubled within a few days. It also helped to clarify and resolve some of the reasons why people were unwilling to donate.
You can see the full list of changes for April 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 I work full-time on these tasks and more. As there is no advertising or tracking, all of our work is funded through donations. Unfortunately the amount of donations has decreased to only 2000€ per month. This leaves only 1000€ per developer, which is not enough to pay my bills. With the current level of donations I will be forced to find another job, and drastically reduce my contributions to Lemmy. To avoid this outcome and keep Lemmy growing, I ask you to please make a recurring donation:
Liberapay | Ko-fi | Patreon | OpenCollective | Crypto
If you want more information before donating, consider the comparison with Reddit. It began as startup funded by rich investors. The site is managed by corporate executives who over time have become more and more disconnected from normal users. Their main goal is to make investors happy and to make a profit. This leads to user-hostile decisions like firing the employee responsible for AMAs, blocking third-party apps and more. As Reddit is a single website under a single authority, it means all users need to follow the same rules, including ridiculous ones like censoring the name "Luigi".
Lemmy represents a new type of social media which is the complete opposite of Reddit. It is split across many different websites, each with its own rules, and managed by normal people who actually care about the users. There is no company and no profit motive. Much of the work is carried out by volunteer admins, mods and posters, who contribute out of enthusiasm and not for money. For users this is great as there is no advertising nor tracking, and no chance of takeover by a billionaire. Additionally there are no builtin political or ideological restrictions. You can use the software for any purpose you like, add your own restrictions or scrutinize its inner workings. Lemmy truly belongs to everyone.
Dessalines and I work fulltime on Lemmy to keep up with all the feature requests, bug reports and development work. Even so there is barely enough time in the day, and no time for a second job. Previously I sometimes had to rely on my personal savings to keep developing Lemmy for you, but that can't go on forever. We partly rely on NLnet for funding, but they only pay for development of new features, and not for mandatory maintenance work. The only available option are user donations. To keep it viable donations need to reach a minimum of 5000€ per month, resulting in a modest salary of 2500€ per developer. If that goal is reached Dessalines and I can stop worrying about money, and fully focus on improving the software for the benefit of all users and instances. Please use the link below to see current donation stats and make your contribution! We especially rely on recurring donations to secure the long-term development and make Lemmy the best it can be.
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 fixes a security vulnerability which allows an attacker to delete images uploaded by other users. You can read the details in the security advisory. Thanks to @Nothing4You for discovering and fixing it.
A new donation dialog is shown to users once per year, to help fund Lemmy development.
There are also various backports from the development branch. Importantly the "Private instance" setting can now be used with federation enabled. This way only logged-in users can browse posts and comments, which stops AI crawlers from overloading the server. Also moderators can now view votes in the post/comment options.
Backend
- Remove unnecessary pictrs purge calls (#5566)
- Donation dialog (#5559)
- Send out email after registration denied, email confirmed (#5553)
- Change private instance setting to allow federation (#5530)
- Proxy post.url if it is an image (#5545)
- When creating community copy allowed languages from creator profile (#5490)
- Include image alt text in post search (#5449)
- Add config option to enable json logging (#5471, #5557)
- Embed images in RSS feeds (#5488)
- Fix federation of sticky posts (#5593)
- Deleted user shouldnt break federation outbox (#5443, #5573)
- Fix some image embeds by escaping alt text (#5506)
- Properly federate distinguish comment (#5586)
- Increase default registration rate limit to 10 per hour (#5600)
- Remove debug ratelimit being used in production (#5551)
Frontend
- Implement donation dialog (#3034)
- Hide images in private message reports (#3053)
- Dont render images in private message (#3043)
- Changed checkbox text "Only moderators can post to this community" from legend to label on the Create Community page (#3046)
- Trigger toast error on community request failure (#3045)
- Add local link next to fedilink on posts (#3033)
- Add banned badges to post and comment listings (#3030)
- Linkify user @ mentions (#3029)
- Adding ability for mods to view votes. (#3027)
- Upvote, downvote, view source, and favorite icons become larger when pressed to improve visibility on grayscale screens (#2960)
- Improve colour contrast of the mini-overlay in the top right corner of link or image post thumbnails (#2961)
- Improve screenreader accessibility by adding a main element to more pages (issue #2891) (#2944)
- Using input group for allowed and block instance buttons. (#2905)
- Moving totp and delete account settings into their own cards. (#2907)
- Hide NSFW field for create post form, for NSFW communities. (#2887)
- Modify the logic for appending the URL after uploading an image, placing the image URL after the cursor. (#2804)
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 are able to develop Lemmy as an open source platform free of tracking and ads thanks to the generosity of our users. Once a year we ask you to consider donating to support our work. Financial security allows us to continue maintaining and improving the platform. If you’d like to make a one-time or recurring donation simply use the links below. Thank you for using Lemmy.
Nutomic and Dessalines, Lemmy Developers
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
In the last weeks Lemmy has seen a lot of growth, with thousands of new users. To welcome them we are holding this AMA to answer questions from the community. You can ask about the beginnings of Lemmy, how we see the future of Lemmy, our long-term goals, what makes Lemmy different from Reddit, about internet and social media in general, as well as personal questions.
We'd also like to hear your overall feedback on Lemmy: What are its greatest strengths and weaknesses? How would you improve it? What's something you wish it had? What can our community do to ensure that we keep pulling users away from US tech companies, and into the fediverse?
Lemmy and Reddit may look similar at first glance, but there is a major difference. While Reddit is a corporation with thousands of employees and billionaire investors, Lemmy is nothing but an open source project run by volunteers. It was started in 2019 by @dessalines and @nutomic, turning into a fulltime job since 2020. For our income we are dependent on your donations, so please contribute if you can. We'd like to be able to add more full-time contributors to our co-op.
We will start answering questions from tomorrow (Wednesday). Besides @dessalines and @nutomic, other Lemmy contributors may also chime in to answer questions:
Here are our previous AMAs for those interested.
What is Lemmy?
Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.
Developer AMA
Next week we are going to hold an "Ask me Anything" where users can ask the Lemmy developers all sorts of questions. They will be answered by @dessalines and @nutomic who have been working on Lemmy since the beginning in 2019. Other maintainers may also chime in. You can ask about the beginnings of Lemmy, how we see the future of Lemmy, what makes Lemmy different from Reddit, internet and social media in general, as well as personal questions.
The AMA thread will be opened next Tuesday, March 25 in !announcements@lemmy.ml. We will start responding one day later. Until then you can let other people know about the AMA, think of good questions and read our previous AMAs:
Changes
- Fix Youtube thumbnails by increasing the metadata fetch limit to 1 MB #5266
- Also remove private messages when banning user with "remove content" (goodbye Nicole) #5414
- Ignore accept-language header if no site languages are specified, to avoid that users have English disabled and can't see most posts #5485
- Enable english for users on instances with all languages enabled, to resolve the above problem #5489 #5493
- Only list local banned users under
/admin#5364 - Add crawl-delay to robots.txt #3009
- Optimize migrations which were included in 0.19.6 #5301
Upgrade instructions
There are no breaking changes with this release.
Follow the upgrade instructions for ansible or docker.
If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.
Thanks to everyone
We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.
Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
DraconicNEO
flamingo-cant-draw
travis-jeans
- Add Verdana and Arimo fonts to Litely and Darkly variables file before Helvetica (Issue 1537)
- Improve colour contrast of the mini-overlay in the top right corner of link or image post thumbnails
- Upvote, downvote, view source, and favorite icons become larger when pressed to improve visibility on grayscale screens
- Improve screenreader accessibility by adding a main element to more pages (issue #2891)
dessalines
- Been working on getting lemmy-ui up to date for 1.0.0 .
- Extracting pagination cursor utils into a trait.
Nutomic
- Removing aggregates tables (fixes #4869)
- Enable english for all users to fix language issues
- Ignore accept-language header if not site languages are specified
- Add more options for image uploads
- Use connection url to configure email (fixes #5472)
- Use version from git to indicate unreleased changes
- Add config option to enable json logging
- Also search url field by default
- Fix federation of unban action (fixes #5454)
- Get rid of
Option<Vec<_>>in api structs (fixes #2820)
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
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. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
travis-jeans
dessalines
- Fix matrix id import. #5063
- Add ability to view your own sent reports.
- Use rust:1.81 for CI.
- Adding ability to resend verification email.
- Show comments for hidden communities.
- When verifying email, add note about waiting for approval.
- Adding a can_mod field to CommentView, PostView, and CommunityView.
- Adding a variable time_range_limit, rather than having many post sorts like
TopSixHours - Adding blurhash to image_details.
- Adding listing_type filter for modlog.
- Fix corepack bug.
Nutomic
- Show posts/comments from followed communities despite instance block
- Simplify slur regex
- Deleted user shouldnt break federation outbox (fixes #5441)
- Reduce usage of async_trait
- Rate limit changes (fixes #5287)
- Allow sending report only to admins (fixes #2414)
- Also remove private messages when banning user with "remove content"
- Ignore follow requests from kbin, mbin for private communities
- Fix hash check for pictrs binary
- Enable emails in Chinese
- Cors policy should allow any origin by default (fixes #5405)
- Merge functions for formatting local urls
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
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. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Lemmy v0.19.9 Release
What is Lemmy?
Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.
Changes
This version fixes a potential security problem, by preventing Lemmy from accessing localhost URLs. There is also a fix for a crash during markdown parsing. Lemmy now uses mimalloc instead of the system allocator (usually glibc), which should improve performance and prevent unlimited memory growth over time.
Lemmy
- Error handling for thumbnail generation
- Use mimalloc as memory allocator
- Additional security checks for URLs (details) . Security Advisory
- Fix crash while rewriting markdown
- Fix peertube federation
- Append attachments to comments (@flamingo-cant-draw)
- Enable site languages for new user
Lemmy-UI
- Enforce required validation on signup answers (@anhcuky)
- copy thumbnail URL during crossposting (@anhcuky)
- Adding a bottom-margin to spoiler details tag.
- Fixing login password limits.
- Adding zh-CN as default for zh lang.
- Updated translations
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 is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
andrewmoise
timothyhay256
dessalines
- Removing upx.
- Converting joins, filters, and selects to common functions for DB views.
- Using different corepack install method to fix corepack bug.
- Adding listing_type.ModeratorView for list communities.
- Only print migration output when running migrate command
- Search combined
- Adding post_id and type_ filters to combined reports.
- Adding zh-CN as default for zh lang.
Nutomic
- Fix crash while rewriting markdown (fixes #5380)
- Rename actor_id columns to ap_id
- Include saved date in api responses (fixes #5184)
- Fix peertube federation (ref #3837)
- Use mimalloc as memory allocator
- Federate "resolve report" action
- Deny invalid config fields
- Remove instrument macros
- Only list local banned users (fixes #2961)
- Add some url validation
- Allow setting multiple values for cors_origin (fixes #5198)
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
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. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
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