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.
Major Changes
HTTP API instead of Websocket
Until now Lemmy-UI used websocket for all API requests. This has many disadvantages, like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. @CannotSleep420 and @dessalines have been working hard for the past weeks to implement this change in lemmy-ui.
HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an experimental nginx config which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk.
Two-Factor Authentication
New support for two-factor authentication. Use an app like andOTP or Authenticator Pro to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.
Custom Emojis
Instance admins can add different images as emojis which can be referenced by users when posting.
Other changes
Progressive Web App
Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.
Note for desktop Firefox users: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use use this extension.
Error Pages
Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text "404 error message here".
Route Changes
Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:
Note that you now only have to specify parameters you want instead of all of them.
Searchable select redesign
The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!
Share button
Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.
Lemmy-UI Overall look and feel
lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.
Special thanks to sleepless, alectrocute, jsit, and many others for their great work on improving and re-organizing lemmy-ui.
Database optimizations
Special thanks to johanndt, for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way.
Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.
Captchas
Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.
Upgrade instructions
Follow the upgrade instructions for ansible or docker.
We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from NLnet foundation.
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. No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.
Query speed is Lemmy’s main performance bottleneck, so we really appreciate any help database experts can provide.
I have been pleading that Lemmy server operators install pg_stat_statements extension and share metrics from PostgreSQL. https://lemmy.ml/post/1361757 - a restart of PostgreSQL server is required for the extension to be installed. I suggest this be part of 0.18 upgrade. Thank you.
My favorite feature is that upvotes now have a spinner that lets you know they actually got processed by the server. On 0.17 I would click an upvote and it would sometimes flash between on and off state or not be very obvious that it actually went through.
i think my favorite feature is that errors while posting no longer silently fail. however, since they do show in a small popup box with a short timer, if i'm not paying attention, i'll still miss them, and it'll look like it failed silently.
Great. I saw that Lemmy.ml been on v.0.18.0 for more than a day. I love the subtle changes they made. Keep up the good work ! It’s becoming to be my favourite site day by day
Holy fuck man! As someone who wants to be a Web Dev, it’s really exciting to see open source projects where people develop without any financial incentives! It’s mind boggling how much this community is getting together to improve the experience of everyone!
Another addition that wasn't covered in the release notes, these will now automatically be linked to your local instance without having to do anything:
There was like 200 comments worth of discussion on this and it seems like it was implemented without much fanfare. What gives? This is one of the biggest gripes I had early on. I’m gonna shout this from the roof tops
I saw those giant threads where it was being discussed in circles and decided to take a crack at implementing it myself. Turns out it was not that difficult, I think I was just the first developer who found the threads and took action. Everyone else was focused on getting bug fixes into this release.
Hot diggity, these new changes are amazing! I can definitely see the difference in performance on lemmy.ml. Feed content sorting is also way better without the live updates and bugs with Hot and Active. Great work!
Damn, big update! I see a lot of people are contributing, that's really the biggest gift from Reddit's poor decisions (well, presuming contributions did increase, which is a fair assumption).
That's why I love open source software, it's truly a community effort!
Agreed, I know there are workarounds with custom css extensions but it's a bit of a pain on mobile. A theme that's oled black and compact would be fantastic.
I've been noticing on lemmy.ml that clicking Next in the news feed pagination seems to cause it to scroll to a random point instead of back to the top of the feed, at least on mobile.
I have the same issue but it’s only because my Chrome on iOS hard-cached 0.18-rc instead of 0.18. The official 0.18 release has this bug fixed (I fixed it).
Try clearing your site data on your mobile browser or just wait for the cache to expire I guess. 🤔
It's been over a year since the last commit and it's security software, so being unmaintained is dangerous. And it's not like there's no other options. My transition to Aegis was very smooth.
I’ve been noticing significantly less errors when using the API. Thanks for all the hard work I know you guys are putting in. Much appreciated to both of you and the other guys contributing to the project.
Has anyone gotten 2FA to work? I tried it, made a qr code locally, scanned it in authy, and wasn't able to get my instance to accept the code. It would say 'incorrect_totp token'. .. Also can the webui generate the totp qr code in the future?
Thank you for your work, the collapse comment icon was reallyimportant for me. I hope you can fix the issue bringing back to the top when upvoting a comment the same thing when scrolling through top and when there is a new post bringing back to the top. That's the most annoying thing I've ever encounter on lemmy.
On iOS, after adding lemmy.ml to the homescreen as a PWA from Safari, I can't log in because the keyboard doesn't pop up when tapping the username or password fields.
So I'm trying to get a local instance of Lemmy 0.18 running on my LAN with docker. I don't have a domain name (yet) and would not be able host lemmy as a Proxmox Container primarily to get acquainted with hosting and administering an instance before eventually hosting an instance on a VPS. Has anyone successful hosted lemmy on their LAN? How did you go about setting it up?
I haven't tried it yet, but I'm sure the folks on the support forum and matrix channel (listed under upgrade instructions on the original post) would love to help you, especially if you're willing to document your experience for others.
Note that you now only have to specify parameters you want instead of all of them.
That doesn't seem to apply to the search page. For example, putting https://lemmy.ml/search?q=test&sort=New will lead to The server returned this error: couldnt_find_object. This may be useful for admins and developers to diagnose and fix the error
Copying the URL of a search (without stripping parameters) and opening it in a new tab so that it doesn't contains any referers also returns the same error.
I've tried to install Lemmy using the Docker image and it keeps failing. There seems to be typos and other errors in the configuration files. It's really frustrating.
Compared to Lemmy, installing Mastodon is dead easy.
I've never worked with Ansible before but should I be using the Ansible Playbook method instead?
It broke Jerboa. I couldn't get jerboa to change to view all or change sort. On my lemmy.ml or lemmy.world accounts. So I assumed the jerboa v0.0.36 update broke it. I Uninstalled jerboa and tried to sideload 0.0.35 but no matter what apk I download it acts like 0.0.36 and says the server is out of date and won't log in. Now I can't log in to lemmy.world because they are on 0.0.17 (since the update broke their server).
Thanks for the work, but rolling out two updates simultaneously makes diagnosing issues impossible.
Thank you for your work, this seems great. My problem is that I got an update to jerboa, tried to log in and it says server too low. Browser works perfectly. Do I have to wait for the server to catch up?
I’m pretty curious what the reasoning of using Websockets for the full API was? It’s not something I’ve really seen and was surprised when I was trying to debug why I couldn’t login that all the request were going through WS.
I would guess the reasoning was to have everything live updated - comments, upvotes, posts, etc, instead of having to refresh the page.
But this is indeed horribly inefficient with a large number of users.