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
This release includes major improvements to performance, specifically optimizations of database queries. Special thanks to @phiresky, @ruud, @sunaurus and many others for investigating these. Additionally this version includes a fix for another cross-site scripting vulnerability. For these reasons instance admins should upgrade as soon as possible.
As promised, captchas are supported again. And as usual there are countless bug fixes and minor improvements, many of them contributed by community members.
## Upgrade instructions
Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).
If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/#lemmy-admin-support-topics:discuss.online).
## Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/).
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](https://join-lemmy.org/donate). 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.
## Changes
### API
- Added a few more post sorts, a `show_nsfw` to `ListCommunities`, and `open_links_in_new_tab` to `SaveUserSettings`.
- Full list of changes [here](https://github.com/LemmyNet/lemmy-js-client/compare/0.18.0...0.18.1-rc.3)
### Lemmy Server
- Revert "Make sure hot rank sorts for post and community filter by positive hot ranks. ([#3497](https://github.com/LemmyNet/lemmy/issues/3497))" ([#3521](https://github.com/LemmyNet/lemmy/issues/3521))
- Make hot rank not crash on future ([#3517](https://github.com/LemmyNet/lemmy/issues/3517))
- Update prettier to 3.0.0 ([#3509](https://github.com/LemmyNet/lemmy/issues/3509))
- improve admin and mod check to not do seq scans and return unnecessary data ([#3483](https://github.com/LemmyNet/lemmy/issues/3483))
- Only allow http(s) scheme for urls (ref [#3505](https://github.com/LemmyNet/lemmy/issues/3505)) ([#3508](https://github.com/LemmyNet/lemmy/issues/3508))
- Change security contact mail ([#3506](https://github.com/LemmyNet/lemmy/issues/3506))
- Adding rest of community sorts. Fixes [#3374](https://github.com/LemmyNet/lemmy/issues/3374) ([#3376](https://github.com/LemmyNet/lemmy/issues/3376))
- Dont compare db string errors (fixes [#1393](https://github.com/LemmyNet/lemmy/issues/1393)) ([#3424](https://github.com/LemmyNet/lemmy/issues/3424))
- Add Open links in new tab setting ([#3318](https://github.com/LemmyNet/lemmy/issues/3318))
- Add awesome-lemmy to LemmyNet? ([#3413](https://github.com/LemmyNet/lemmy/issues/3413))
- Use serde(skip) instead of skip_serializing, add placeholder values ([#3362](https://github.com/LemmyNet/lemmy/issues/3362))
- Mark follow as pending when subscribing to remote community (fixes [#3384](https://github.com/LemmyNet/lemmy/issues/3384)) ([#3406](https://github.com/LemmyNet/lemmy/issues/3406))
- docs(api): Add api-common info on generating TypeScript bindings ([#3330](https://github.com/LemmyNet/lemmy/issues/3330))
- Remove redundant calls to `Iterator::collect` ([#3365](https://github.com/LemmyNet/lemmy/issues/3365))
- Run cargo update as part of release script ([#3369](https://github.com/LemmyNet/lemmy/issues/3369))
- Fixes [#2900](https://github.com/LemmyNet/lemmy/issues/2900) - Checks slur regex to see if it is too permissive ([#3146](https://github.com/LemmyNet/lemmy/issues/3146))
- add new flag to api ([#3363](https://github.com/LemmyNet/lemmy/issues/3363))
- Add support for sslmode=require for diesel-async DB connections ([#3189](https://github.com/LemmyNet/lemmy/issues/3189))
- Remove `actix_rt`& use standard tokio spawn ([#3158](https://github.com/LemmyNet/lemmy/issues/3158))
- after 30 days post deletion, replace comment.content and post.body with 'Permanently Deleted'
### Lemmy UI
- Dark theme tweaks ([#1840](https://github.com/LemmyNet/lemmy-ui/issues/1840))
- fix: Adjust sidebar banner to wrap bellow the title ([#1819](https://github.com/LemmyNet/lemmy-ui/issues/1819))
- add ruby annotation support ([#1831](https://github.com/LemmyNet/lemmy-ui/issues/1831))
- fix: Fix mobile thumbnail being too small ([#1814](https://github.com/LemmyNet/lemmy-ui/issues/1814))
- Use Join Lemmy hostname as link text in footer ([#1737](https://github.com/LemmyNet/lemmy-ui/issues/1737))
- fix: Add focus ring color to post action buttons and markdown help link ([#1816](https://github.com/LemmyNet/lemmy-ui/issues/1816))
- fix: Fix focus ring styles for radio button toggles [#1772](https://github.com/LemmyNet/lemmy-ui/issues/1772) ([#1773](https://github.com/LemmyNet/lemmy-ui/issues/1773))
- fix toaster upon user settings change ([#1802](https://github.com/LemmyNet/lemmy-ui/issues/1802))
- Fix home page not using site-level listing type [#1612](https://github.com/LemmyNet/lemmy-ui/issues/1612) ([#1778](https://github.com/LemmyNet/lemmy-ui/issues/1778))
- feat: Subtler user badge style ([#1796](https://github.com/LemmyNet/lemmy-ui/issues/1796))
- Fixing timezone issue with date-fns. Fixes [#1680](https://github.com/LemmyNet/lemmy-ui/issues/1680) ([#1681](https://github.com/LemmyNet/lemmy-ui/issues/1681))
- Add error toast for 413 content too large response on image uploads ([#1675](https://github.com/LemmyNet/lemmy-ui/issues/1675))
- Add publicPath for static js ([#1672](https://github.com/LemmyNet/lemmy-ui/issues/1672))
- Fix search page to stop `couldnt_find_object` error ([#1669](https://github.com/LemmyNet/lemmy-ui/issues/1669))
- Add fixed width/height to `PostListing` thumbnail parent ([#1660](https://github.com/LemmyNet/lemmy-ui/issues/1660))
- fix: Add user action buttons to post dropdown [#1653](https://github.com/LemmyNet/lemmy-ui/issues/1653) ([#1655](https://github.com/LemmyNet/lemmy-ui/issues/1655))
- Set cache-control headers to reduce server load (fixes [#412](https://github.com/LemmyNet/lemmy-ui/issues/412)) ([#1641](https://github.com/LemmyNet/lemmy-ui/issues/1641))
- formatting
- make subscribe/unsub/pending button consistent
- Revert [#1463](https://github.com/LemmyNet/lemmy-ui/issues/1463), markdown default lang select
- remove hard-coded text foreground color classes ([#1658](https://github.com/LemmyNet/lemmy-ui/issues/1658))
- Fix subscribe and block community buttons not showing up on first load
- change me-2 to me-1, no need for me-2 width
- make mod shrunken label text-primary
- add @jsit advice
- fix weird borders when markdown textarea is disabled
- feat: Clean up the Create Private Message page a bit
- Fix emojis being unable to save
- fix: Use simpler syntax for languageId array
- fix: Add triangle alert icon to language warning
- fix: Fix language selection bug
- fix: Use Interface Language instead
- Refactor first load handling
- fix: Add aria-describedby for language warning
- Fix issue when navigating awat from settings
- Give function better name
- Cache post listings and restore listing state when using browser back navigation buttons.
- fix: Specify vote content type so buttons work for both comments and posts
- Fix homepage `scrollTo(0, 0)` failing when document size changes.
- Moved `!isBrowser()` check to `FirstLoadServer.isFirstLoad`
- Fix server-side rendering after first load.
- fix!: Try to get Vote Buttons component working in Comments
- fix: Remove unused prop
- Change function name
- Make date distance format use correct verbiage
- Extract date fns setup
- Fix homepage `scrollTo(0, 0)` failing when document size changes.
- fix: Rework some vote buttons architecture
- Remove unused dep
- Replace momentjs with date-fns
- fix: Undo some other extraneous changes
- fix: Undo some extraneous changes
- fix: Remove tippy duplicate functions
- fix: Revert to old mobile vote style
- feat: Move vote buttons to separate component
- feat: Default language dropdowns to user's primary language
- added litely-compact
- changed where custom compact code goes
- added darkly-compact - issue 552
# Lemmy v0.18 Release (2023-06-23)
## 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.
## Major Changes
### HTTP API instead of Websocket
Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), 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](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/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](https://github.com/LemmyNet/lemmy-ansible/pull/75) 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](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](https://f-droid.org/packages/me.jmh.authenticatorpro/) 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](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).
#### 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](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.
#### Database optimizations
Special thanks to [johanndt](https://github.com/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
The installation instructions have been slightly updated. However there are no breaking changes, other than removing websocket.
Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).
If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).
## Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/).
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](https://join-lemmy.org/donate). 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.
## Changes
### API
- Our HTTP API docs are at https://join-lemmy.org/api/
- These are now auto-generated directly from our rust type definitions, using [ts-rs](https://github.com/Aleph-Alpha/ts-rs).
- [A comparison from the last release](https://github.com/LemmyNet/lemmy-js-client/compare/0.17.0-rc.1...0.18.0-rc.1)
- There are two breaking changes since the last release:
- [GetSite.taglines](https://join-lemmy.org/api/interfaces/GetSiteResponse.html#taglines) is now required, and is an empty array.
- `SortType` and `ListingType` are now numbered enums, rather than strings in some places, and numbers in others.
### Config
- No changes, but you can see the current config options [here.](https://github.com/LemmyNet/lemmy/blob/main/config/defaults.hjson)
### Lemmy Server
- Speedup cargo check in CI ([#3239](https://github.com/LemmyNet/Lemmy/issues/3239))
- Correct error messages if user registers with taken user/email ([#3093](https://github.com/LemmyNet/Lemmy/issues/3093))
- Fix unapproved users being able to log in after registration mode set to closed. ([#3096](https://github.com/LemmyNet/Lemmy/issues/3096))
- Link tafkars in readme ([#3087](https://github.com/LemmyNet/Lemmy/issues/3087))
- doc: Added pythorhead library in readme ([#3114](https://github.com/LemmyNet/Lemmy/issues/3114))
- Only create ltree postgres extension in migration if doesn't already exist ([#3092](https://github.com/LemmyNet/Lemmy/issues/3092))
- add issue template yml from lemmy-ui ([#3086](https://github.com/LemmyNet/Lemmy/issues/3086))
- Fix Issue [#3075](https://github.com/LemmyNet/Lemmy/issues/3075) by using None for local fields instead of Some(false) ([#3088](https://github.com/LemmyNet/Lemmy/issues/3088))
- stop requiring superuser to run migrations ([#3002](https://github.com/LemmyNet/Lemmy/issues/3002))
- Fixes [#1884](https://github.com/LemmyNet/Lemmy/issues/1884) - Support Spoiler Tags ([#3018](https://github.com/LemmyNet/Lemmy/issues/3018))
- Fix compilation
- Align default DB password with documentation ([#3068](https://github.com/LemmyNet/Lemmy/issues/3068))
- Activitypub breaking changes for Lemmy 0.18 ([#2705](https://github.com/LemmyNet/Lemmy/issues/2705))
- Add db index for post.url column ([#2929](https://github.com/LemmyNet/Lemmy/issues/2929))
- Fall back to String for Comment::path when not using the full feature ([#2941](https://github.com/LemmyNet/Lemmy/issues/2941))
- update diesel to 2.1.0 and diesel-async to 0.3.0 (issue [#2882](https://github.com/LemmyNet/Lemmy/issues/2882)) ([#2895](https://github.com/LemmyNet/Lemmy/issues/2895))
- Fix dev setups. ([#2944](https://github.com/LemmyNet/Lemmy/issues/2944))
- Set version name for crates.io release ([#2928](https://github.com/LemmyNet/Lemmy/issues/2928))
- Fix handling of follows addressed to single value ([#2920](https://github.com/LemmyNet/Lemmy/issues/2920))
- Downgrade postgres for CI to 15.2 (fixes [#2857](https://github.com/LemmyNet/Lemmy/issues/2857)) ([#2859](https://github.com/LemmyNet/Lemmy/issues/2859))
- Make volumes used in docker compose work when running on machines with SELinux enabled ([#2853](https://github.com/LemmyNet/Lemmy/issues/2853))
- Set attribute `deny_unknown_fields` for Lemmy config ([#2852](https://github.com/LemmyNet/Lemmy/issues/2852))
- Adding comments to all API related types. Fixes [#2846](https://github.com/LemmyNet/Lemmy/issues/2846) ([#2848](https://github.com/LemmyNet/Lemmy/issues/2848))
- Adding typescript generation for API. Fixes [#2824](https://github.com/LemmyNet/Lemmy/issues/2824) ([#2827](https://github.com/LemmyNet/Lemmy/issues/2827))
- Reverting to older non-multi-arch dockerfile. Fixes [#2832](https://github.com/LemmyNet/Lemmy/issues/2832) ([#2833](https://github.com/LemmyNet/Lemmy/issues/2833))
- Add `to` field in follow activities for better compatibility ([#2829](https://github.com/LemmyNet/Lemmy/issues/2829))
- Use older git clone for woodpecker. ([#2831](https://github.com/LemmyNet/Lemmy/issues/2831))
- Remove last Option<Vec..fromAPI.Fixes [#2820](https://github.com/LemmyNet/Lemmy/issues/2820) ([#2822](https://github.com/LemmyNet/Lemmy/issues/2822))
- Adding cross_post fetching to GetPost. Fixes [#2127](https://github.com/LemmyNet/Lemmy/issues/2127) ([#2821](https://github.com/LemmyNet/Lemmy/issues/2821))
- Use Dockerfile.multiarch as Dockerfile ([#2818](https://github.com/LemmyNet/Lemmy/issues/2818))
- Adding diesel enums for SortType and ListingType ([#2808](https://github.com/LemmyNet/Lemmy/issues/2808))
- Make path to local lemmy-ui use correct relative path ([#2817](https://github.com/LemmyNet/Lemmy/issues/2817))
- Add lemmy-bot to README libraries list ([#2816](https://github.com/LemmyNet/Lemmy/issues/2816))
- Separate federated_instances into its own endpoint. Fixes [#1931](https://github.com/LemmyNet/Lemmy/issues/1931) ([#2813](https://github.com/LemmyNet/Lemmy/issues/2813))
- Use official rust image and clean up Dockerfiles ([#2804](https://github.com/LemmyNet/Lemmy/issues/2804))
- Temporary fix for hiding deleted posts. [#2624](https://github.com/LemmyNet/Lemmy/issues/2624) ([#2811](https://github.com/LemmyNet/Lemmy/issues/2811))
- Leave modded communities on account deletion. Fixes [#2560](https://github.com/LemmyNet/Lemmy/issues/2560) ([#2810](https://github.com/LemmyNet/Lemmy/issues/2810))
- Adding check to description and body length fields. ([#2805](https://github.com/LemmyNet/Lemmy/issues/2805))
- Fix & Optimize CI config ([#2802](https://github.com/LemmyNet/Lemmy/issues/2802))
- Making the chat server an actor. ([#2793](https://github.com/LemmyNet/Lemmy/issues/2793))
- Use pretty print for federation json responses ([#2801](https://github.com/LemmyNet/Lemmy/issues/2801))
- Fix listing type default value ([#2796](https://github.com/LemmyNet/Lemmy/issues/2796))
- Add woodpecker ci ([#2789](https://github.com/LemmyNet/Lemmy/issues/2789))
- Adding TOTP / 2FA to lemmy ([#2741](https://github.com/LemmyNet/Lemmy/issues/2741))
- Get rid of Safe Views, use serde_skip ([#2767](https://github.com/LemmyNet/Lemmy/issues/2767))
- Show deleted and removed posts for profile views. Fixes [#2624](https://github.com/LemmyNet/Lemmy/issues/2624) ([#2729](https://github.com/LemmyNet/Lemmy/issues/2729))
- Dont upsert Instance row every apub fetch ([#2771](https://github.com/LemmyNet/Lemmy/issues/2771))
- Ignore undetermined language when calculating post default language ([#2769](https://github.com/LemmyNet/Lemmy/issues/2769))
- Switch from bb8 to deadpool. Fixes [#2765](https://github.com/LemmyNet/Lemmy/issues/2765) ([#2768](https://github.com/LemmyNet/Lemmy/issues/2768))
- Adding a vector indexing check to prevent panics. Fixes [#2753](https://github.com/LemmyNet/Lemmy/issues/2753) ([#2754](https://github.com/LemmyNet/Lemmy/issues/2754))
- Cleaning up person_view sorts ([#2760](https://github.com/LemmyNet/Lemmy/issues/2760))
- Add default attribute for webfinger properties (fixes [#2756](https://github.com/LemmyNet/Lemmy/issues/2756)) ([#2759](https://github.com/LemmyNet/Lemmy/issues/2759))
- Include type information with webfinger responses (fixes [#2037](https://github.com/LemmyNet/Lemmy/issues/2037)) ([#2746](https://github.com/LemmyNet/Lemmy/issues/2746))
- Fixing issue with saving site language. Fixes [#2748](https://github.com/LemmyNet/Lemmy/issues/2748) ([#2749](https://github.com/LemmyNet/Lemmy/issues/2749))
- Proper permission check for federated comment distinguish ([#2697](https://github.com/LemmyNet/Lemmy/issues/2697))
- Implement separate mod activities for feature, lock post ([#2716](https://github.com/LemmyNet/Lemmy/issues/2716))
- Fix case in activitypub context (ref [#2734](https://github.com/LemmyNet/Lemmy/issues/2734)) ([#2743](https://github.com/LemmyNet/Lemmy/issues/2743))
- Separate comment distinguish ([#2740](https://github.com/LemmyNet/Lemmy/issues/2740))
- Adding instance software and version. Fixes [#2222](https://github.com/LemmyNet/Lemmy/issues/2222) ([#2733](https://github.com/LemmyNet/Lemmy/issues/2733))
- Fixing slow joins to post_read, post_saved, and comment_saved . ([#2738](https://github.com/LemmyNet/Lemmy/issues/2738))
- Remove lemmur since its deprecated. ([#2742](https://github.com/LemmyNet/Lemmy/issues/2742))
- Combine prod and dev docker setups using build-arg ([#2739](https://github.com/LemmyNet/Lemmy/issues/2739))
- Organize utils into separate files. Fixes [#2295](https://github.com/LemmyNet/Lemmy/issues/2295) ([#2736](https://github.com/LemmyNet/Lemmy/issues/2736))
- Removing checking permissions when editing posts and comments. ([#2727](https://github.com/LemmyNet/Lemmy/issues/2727))
- Fixing updated form fields. Fixes [#2724](https://github.com/LemmyNet/Lemmy/issues/2724) ([#2725](https://github.com/LemmyNet/Lemmy/issues/2725))
- Only let top admin purge. Fixes [#2731](https://github.com/LemmyNet/Lemmy/issues/2731) ([#2732](https://github.com/LemmyNet/Lemmy/issues/2732))
- Fix writing of `removeData` in apub context (fixes [#2734](https://github.com/LemmyNet/Lemmy/issues/2734)) ([#2735](https://github.com/LemmyNet/Lemmy/issues/2735))
- Adding a site option to email admins for new reports. ([#2730](https://github.com/LemmyNet/Lemmy/issues/2730))
- Sort community search by active_monthly by default. ([#2728](https://github.com/LemmyNet/Lemmy/issues/2728))
- Fix post titles being cut off (fixes [#2718](https://github.com/LemmyNet/Lemmy/issues/2718)) ([#2720](https://github.com/LemmyNet/Lemmy/issues/2720))
- Improved error message when attempting to fetch non-local object (fixes [#2715](https://github.com/LemmyNet/Lemmy/issues/2715)) ([#2717](https://github.com/LemmyNet/Lemmy/issues/2717))
- Convert HTML from titles into markdown ([#2709](https://github.com/LemmyNet/Lemmy/issues/2709))
- In apub post receive, check posting restricted to mods (ref [#2702](https://github.com/LemmyNet/Lemmy/issues/2702)) ([#2704](https://github.com/LemmyNet/Lemmy/issues/2704))
- Fix data fetching from Peertube (fixes [#2689](https://github.com/LemmyNet/Lemmy/issues/2689)) ([#2703](https://github.com/LemmyNet/Lemmy/issues/2703))
- Add a ntfy notif on a tag deploy success. ([#2701](https://github.com/LemmyNet/Lemmy/issues/2701))
- Disable pictrs feature in CI to make it faster ([#2698](https://github.com/LemmyNet/Lemmy/issues/2698))
- Revert "User HTTP instead of HTTPS when fetching icon in docker internal network"
- Revert "Add debug statement."
- Add debug statement.
- User HTTP instead of HTTPS when fetching icon in docker internal network
- Add error message paragraph
- Make error code always display
- Navbar hide menu fix ([#1033](https://github.com/LemmyNet/lemmy-ui/issues/1033))
- Show parent comment for comment link. Fixes [#1030](https://github.com/LemmyNet/lemmy-ui/issues/1030) ([#1032](https://github.com/LemmyNet/lemmy-ui/issues/1032))
- Add heading tag to rate limit form
- Remove console log
- Include forgotten translation
- Remove console logs
- Add web share for browsers that have it enabled ([#1029](https://github.com/LemmyNet/lemmy-ui/issues/1029))
- Show language on posts and comments ([#1026](https://github.com/LemmyNet/lemmy-ui/issues/1026))
- Allow user to submit rate limit changes
- Put rate limit options in its own tab
- Refactor tabs into reuseable component
- Replace link to issue tracker with proper support spaces
- Fix isoData bug
- Refactor how error data is passed from server to client
- Make admin UI for allowing/blocking instances easier to work with ([#1012](https://github.com/LemmyNet/lemmy-ui/issues/1012))
- Get rid or forced error
- Changing all bigints to numbers
- Upgrade lemmy-js-client to work with bigints. Fixes [#1018](https://github.com/LemmyNet/lemmy-ui/issues/1018) ([#1022](https://github.com/LemmyNet/lemmy-ui/issues/1022))
- Redirect from pages that require auth on logout ([#1016](https://github.com/LemmyNet/lemmy-ui/issues/1016))
- Fix things not working in production build
- Fix error page not showing when site not fetched and adjust styles
- Handle error when site not returned
- Use node env instead of version for environment specific logic
- Redirect to login and remove duplicated code
- Fix server redirect error
- Set up logic for handling errors
- Extract helper function
- Dont preselect new post language ([#1008](https://github.com/LemmyNet/lemmy-ui/issues/1008))
- Update JS client to version with fixed JSON serialization ([#1017](https://github.com/LemmyNet/lemmy-ui/issues/1017))
- Redirect fomr pages that require auth on logout
- Remove "banned" badge from posts and comments (fixes 899) ([#1011](https://github.com/LemmyNet/lemmy-ui/issues/1011))
- Add support for PWA ([#1005](https://github.com/LemmyNet/lemmy-ui/issues/1005))
- Using auto-generated types from ts-rs. ([#1003](https://github.com/LemmyNet/lemmy-ui/issues/1003))
- Fixing some outdated docs links. Fixes [#1006](https://github.com/LemmyNet/lemmy-ui/issues/1006) ([#1007](https://github.com/LemmyNet/lemmy-ui/issues/1007))
- Adding ban_from_community to be more clear. Fixes [#872](https://github.com/LemmyNet/lemmy-ui/issues/872) ([#943](https://github.com/LemmyNet/lemmy-ui/issues/943))
- Let any mod feature and lock posts. Fixes [#875](https://github.com/LemmyNet/lemmy-ui/issues/875) ([#944](https://github.com/LemmyNet/lemmy-ui/issues/944))
- Adding a warning for deselecting the undetermined language. ([#945](https://github.com/LemmyNet/lemmy-ui/issues/945))
- Fixing line formatting. ([#947](https://github.com/LemmyNet/lemmy-ui/issues/947))
- Do local community checks for buttons. Fixes [#918](https://github.com/LemmyNet/lemmy-ui/issues/918) ([#948](https://github.com/LemmyNet/lemmy-ui/issues/948))
- Check to make sure post is correct. Fixes [#934](https://github.com/LemmyNet/lemmy-ui/issues/934) ([#949](https://github.com/LemmyNet/lemmy-ui/issues/949))