Finally releasing 1.3.0. I didn’t quite rip it down to the studs, but it was damn close. Much of the UI has been re-written as well as a lot of the underpinning helper functions. There’s a lot of changes, though most are just enhancements and polish to things that already existed in 1.2.9.

The full changelog is a beast, so I’ll only post the highlights here:

Highlights for 1.3.0

API Compatibility

1.3.0 “Defiant” remains fully compatible with both 0.18.x and 0.19.x. This will be the last version to support 0.18.x. Once development of 1.4.0 begins, the minimum supported API version will be 0.19.3.

0.19.x Features Supported

0.19 has had basic support (mostly auth) since 0.19.0 was released. In addition, 1.3.0 now offers a few more features that become available when connecting to an 0.19.x instance:

  • Scaled sort becomes available
  • Instance block becomes available
  • Instance blocks are managable through your Profile->Blocks page.
  • Cursor-based pagination is used if available but falls back to offset-based for 0.18.x

General

  • Whole UI has been polished. See the changelog for the full list of changes since 1.2.9
  • Removed markdown-it and all of its plugins as it was too cumbersome to extend to do some things I wanted to do and replaced it with svelte-plugin-marked. Wrote custom renderers to replicate the functionality of markdown-it-html5-embed and spoilers.
  • New community moderation capabilities (directly ban/unban users, localized modlog with quick actions)
  • Sidebar fonts are now more compact
  • Long community names are intelligently shortened where needed
  • You can now select one of several fonts to use for the UI. The default font is now Roboto.
  • New notification widget
  • Option to hide those obnoxious “anti AI” CC licenses people put on their posts/comments that they somehow think will prevent LLMs from training on their submissions. 🙄
  • Posts with URLs will now have an [Archive Link] next to them which will automatically search archive.ph for that URL. Please stop commenting “Paywalled” when someone posts an article.
  • “Copy Lemmyverse Link” added to user profile menus
  • Can now change password without having to go through “forgot password” process (I swear I thought I already implemented this, but I guess it never got merged in. Oops)
  • Action bar for posts/comments is now reversible. Primarily intended for mobile when you want the vote buttons to be on the right-hand side.
  • Bugfixes: too many to list

Search

This deserves its own section since the search was completely revamped.

  • Search filters cleaned up and polished
  • Can now search from community or user pages which will automatically filter the search to just that community/user
  • Added a “More from {user}” option to the community menu on posts. This will search for posts by that user in the current community.
  • #Hashtags are now automatically converted to search links

Remote Instance Community Browser Revamp

  • Can now one-click subscribe to communities on remote instances
  • Your subscription status for communities is now reflected against remote instances
  • Got rid of modal to view community info. Each item is now a collapsible item; expand to see community details.
  • Admins can specify a list of instances that will pre-fill the instance selector for quick browsing. Users can enter any instance they want also.

/instances Page

Can now view federated instances (allowed, blocked, linked) through Tesseract. Additionally, you can filter by software (Lemmy, Kbin, etc) and keyword as well as hide dead instances.

Each instance also has action buttons to view communities there (Lemmy only), visit the instance, view a Fediseer report for it. Dead instances are also indicated with a “thumbs-down” icon.

Instances are considered “dead” if they haven’t been pinged in > 3 days.

Media

  • Peertube videos now embed seamlessly. You can already follow Peertube channels in Lemmy, and now they’ll show as a feed of embeds.
  • Embeds now only render when they’re in the viewport. Once an embed is out of the viewport, the iframe is destroyed and removed from the DOM. This saves a LOT of memory.
  • Can enable an option to show alt text as a caption on images in markdown (not post images, but images in the post body and coments).

Feed & Posts

  • Added buttons on community avatars to quick subscribe/unsubscribe (ok, saw that Photon did that and implemented it almost exactly the same. Sue me).
  • “Explore” menu is now “Instances” menu. Instance-specific options are here such as Fediseer reports, block that instance (0.19+), and browse communities there.
  • Infinite scroll is now the default.

Post Creation

In addition to the polish and cleanup, the form to create posts has some new features:

  • Can now pull the metadata from the given URL to pre-populate the title and pull a thumbnail for previewing
  • Uploading images can now use the image proxy URL to reduce load on the API server (if media proxy/cache is enabled by admins and users enable it in their settings)
  • Can preview in both card and compact views

Modlog

Lots of tweaks and polish, now has quick action buttons that can be used to reverse a previous action or take additional actions. You can also easily turn a temp ban into a permaban without the intermediate step of unbanning first.

Features That Did Not Make It Into 1.3.0

There are only two features that didn’t make the cut:

Reimplement custom feeds

Since this is the last 0.18.x release, and I’m having to support both cursor and offset-based pagination, I’ve decided to push the custom feed rewrite to 1.4.0 which is dropping 0.18.x support. That will make implementation easier and cleaner than having to support both methods.

TOTP 2FA Setup

Same as with the custom feeds, I want to do this cleanly. Since 0.18.5’s TOTP setup is bonkers and can easily lead to accounts being locked out, I’ve decided to skip adding this until 0.19.x is the minimum-supported version.

Get Tesseract

Feel free to play around with the demo instance (it’s unlocked and can log into any Lemmy instance), but ideally, you’d host it yourself or ask your instance admins to offer it as an alternate UI.