github knadh/listmonk v7.0.0-beta.2

one hour ago

listmonk-logo

v7 (beta.2) is a major release with a significant number of improvements and fixes. It's one of the biggest releases to date and has taken several months of work. Check out the beta demo.

It fully replaces the admin UI with a lightweight implementation. It is completely redesigned with major UI and UX improvements and is faster, significantly lighter, more accessible, with a much better mobile view. The admin UI bundle size is reduced by almost 80%.

Important: This is a beta release. If you encounter any issues or unintended behaviour, please report it by opening an issue

How to upgrade

As always, take a backup of your database before upgrading.

Binary

Download the binary from this release. Stop and replace the old binary. Run ./listmonk --upgrade. Start the app again.

Docker

# Edit your `docker-compose.yml` file and change the image name
# from `listmonk/listmonk:latest` to `listmonk/listmonk:beta`

docker compose down
docker compose pull && docker compose run --rm app ./listmonk --upgrade
docker compose up -d app db

Breaking changes

  • The app.from_email setting is now an array of addresses instead of a string, which changes the settings API /api/settings.

  • SES webhooks: Allowed SNS topic ARNs must now be configured. Bounce notifications are rejected without this.

  • Azure webhooks: Shared secret is now mandatory.

  • Settings API and storage, bounce.* JSON structure has changed.

  • Transactional API now requires subscribers:get permission to target existing subscribers in the DB.

  • Several i18n language keys have changed. If you have custom templates with --static-dir, the language strings will have to be changed. Refer to the upstream directory for changes.

  • The old Vue frontend admin has been completely replaced. Certain Admin UI URLs have changed. There are changes to UX, for instance, new list and subscriber creation forms are standalone pages and not popup dialogs anymore.

  • The TinyMCE richtext editor (~500KB) has been replaced with the light weight (~16KB) Squire. TinyMCE after v5, removed several important features from the open-source version, which essentially made upgrades and fixes impossible.

  • For developers, the build steps have changed significantly after getting rid of most Javascript dependencies. The Docker developer environment has changed, and so have all the frontend e2e tests, which have now been ported to Playwright away from Cypress.

What's new?

  • Completely redesigned, fast, lightweight, responsive admin UI.
  • Native dark mode and a dark theme for the code editor.
  • Distinct generated avatars for subscribers, lists, campaigns etc. for easy visual comprehension.
  • Filter campaigns by type, status, and tags; sort by creation, update, start, or scheduled-send date.
  • Filter lists by visibility and opt-in type, subscribers by status or missing list memberships, and users by type, status, and role.
  • Bookmarkable filter/sort links for all views.
  • Subscriber, list, user and settings forms are now standalone pages with grouped cards instead of popup dialogs.
  • Fully redesigned settings page with better grouping and instant search.
  • Media tag, filtering, and categorization.
  • Public campaign archives and RSS feeds for individual public lists.
  • A new list overview page with info, subscription stats, analytics etc.
  • A new campaign overview page with info, subscription stats, analytics etc.
  • New list analytics: subscriptions, unsubscriptions, campaign views etc.
  • New optional unique-count graphs on campaigns and lists analytics.
  • Exhaustive individual subscriber activity breakdown on campaign analytics.
  • Support pasting images and files directly into the rich-text editor.
  • Filter campaigns by type and status, and sort by created, updated, started and scheduled dates.
  • Group by interval (day, week, month etc.), with a new date presets on the analytics page.
  • Multiple From addresses configured in settings.
  • New standalone subscriber info and activity page.
  • Clear subscriber's view / click activity in bulk from the UI and API (DELETE /api/subscribers/:id/activity/:type).
  • Fully redesigned bounces page.
  • Configurable login session duration, including day units such as 7d.
  • OIDC: automatic role mapping and autosync based on claims, RP-initiated logout, PKCE support, and several auth fixes.
  • Ability to exclude specific SMTP servers from the default email messenger pool.
  • A one-click Gmail Relay SMTP preset, with support for a custom HELO hostname.
  • Improved POP bounce processing that handles many new scenarios.
  • Support for plain text notification emails via *-text.txt templates.
  • Throttling for opt-in confirmation emails.
  • One-click unsubscribe via the List-Unsubscribe header now also removes unconfirmed subscriptions.
  • New i18n translations and improvements including long pending fixes for date localization.

Fixes

  • Many security fixes: permission checks, tightening of sql permission etc.
  • Fix realtime campaign stats and 'unsent' count tracking.
  • String literals now work in subscriber search.
  • Bulk deletion now respects tag, status etc. filters.
  • Relative CID images load properly in public archive pages.
  • Multiple @TrackLink Unicode edge cases.
  • CSV import related issues.
  • Campaign analytics miscounting.
  • Forgot password/TOTP rate limits.
  • Attachment encoding and content types for S3 media.

And numerous other improvements and fixes ...

New Contributors

Full Changelog: v6.2.0...v7.0.0-beta.2

Don't miss a new listmonk release

NewReleases is sending notifications on new releases.