v7.0.0-beta.1

knadh/listmonkv7.0.0-beta.1Oct 20, 2026by github-actions[bot]

Upgrading?

AI Summary

v7.0.0-beta.1 is a major release featuring a complete redesign of the admin UI to a lightweight implementation, significantly improving speed and accessibility. It introduces new analytics, dark mode, OIDC improvements, and multiple security fixes.

Key Highlights

  • Complete replacement of the heavy Vue admin UI with a lightweight version (80% smaller bundle).
  • Native dark mode and code editor theme.
  • Multiple security fixes including permission checks.
  • New OIDC support with role mapping and PKCE.
  • Enhanced analytics with unique-count graphs and date presets.

Breaking Changes

  • The `app.from_email` setting is now an array instead of a string, changing the `/api/settings` endpoint.
  • Several i18n language keys have changed, requiring updates to custom templates.
  • The old Vue frontend has been completely replaced, altering Admin UI URLs and UX patterns (e.g., standalone forms instead of popups).
  • The TinyMCE rich text editor (~500KB) has been replaced with the lightweight Squire (~16KB).
  • Build steps and Docker developer environment have changed, with Cypress tests ported to Playwright.

New Features

  • Native dark mode and a dark theme for the code editor.
  • Distinct generated avatars for subscribers, lists, and campaigns.
  • Advanced filtering and sorting for campaigns, lists, subscribers, and users with bookmarkable links.
  • New standalone forms for subscriber, list, user, and settings management.
  • New list overview page with analytics and subscription stats.
  • New analytics features including unique-count graphs and grouping by interval.
  • Multiple `From` addresses configuration in settings.
  • New standalone subscriber info and activity page.
  • Bulk clear subscriber view/click activity via UI and API.
  • Redesigned bounces page and configurable login session duration.
  • One-click Gmail Relay SMTP preset and ability to exclude specific SMTP servers.
  • Support for plain text notification emails via `*-text.txt` templates.
  • Throttling for opt-in confirmation emails.
  • One-click unsubscribe improvements that remove unconfirmed subscriptions.

Full Release Notes

[![listmonk-logo](https://user-images.githubusercontent.com/547147/134940003-1de03d83-8c7b-459b-8056-baa8d5f3b448.png)](https://listmonk.app)

v7 (beta) 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](https://beta.listmonk.app).

It fully [replaces](https://github.com/knadh/listmonk/issues/3073) 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](https://github.com/knadh/listmonk/issues)

## 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**



```shell
# 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`.
- 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](https://github.com/knadh/listmonk/tree/master/static) 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](https://github.com/fastmail/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.
- A new list overview page with info, subscription stats, analytics etc.
- New list analytics: subscriptions, unsubscriptions, campaign views etc.
- Filter campaigns by type and status, and sort by created, updated, started and scheduled dates.
- New optional unique-count graphs on campaigns and lists analytics.
- 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 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.

### Fixes
- Multiple 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.
- Fix multiple `@TrackLink` Unicode edge cases.

And numerous other improvements and fixes ...


## New Contributors
* @ch4og made their first contribution in https://github.com/knadh/listmonk/pull/3125
* @corretge made their first contribution in https://github.com/knadh/listmonk/pull/3141
* @shustovTE made their first contribution in https://github.com/knadh/listmonk/pull/3136
* @imparpaulo01 made their first contribution in https://github.com/knadh/listmonk/pull/3152
* @odpay made their first contribution in https://github.com/knadh/listmonk/pull/3142
* @ecogetaway made their first contribution in https://github.com/knadh/listmonk/pull/3205
* @pavel1337 made their first contribution in https://github.com/knadh/listmonk/pull/3204
* @joshuaboniface made their first contribution in https://github.com/knadh/listmonk/pull/3171
* @derekantrican made their first contribution in https://github.com/knadh/listmonk/pull/3234
* @moojen made their first contribution in https://github.com/knadh/listmonk/pull/3232
* @spatterIight made their first contribution in https://github.com/knadh/listmonk/pull/3242
* @kreshot made their first contribution in https://github.com/knadh/listmonk/pull/2919
* @codedoga made their first contribution in https://github.com/knadh/listmonk/pull/3247
* @CoderNasim2023 made their first contribution in https://github.com/knadh/listmonk/pull/3265
* @biofool made their first contribution in https://github.com/knadh/listmonk/pull/3255
* @bjarn made their first contribution in https://github.com/knadh/listmonk/pull/3254
* @Sudaisib made their first contribution in https://github.com/knadh/listmonk/pull/3201
* @mherzog4 made their first contribution in https://github.com/knadh/listmonk/pull/3169
* @nemunaire made their first contribution in https://github.com/knadh/listmonk/pull/3056
* @fuhrysteve made their first contribution in https://github.com/knadh/listmonk/pull/3219
* @sadfun made their first contribution in https://github.com/knadh/listmonk/pull/3277
* @CReimer made their first contribution in https://github.com/knadh/listmonk/pull/3273
* @Mohamed-Almarag made their first contribution in https://github.com/knadh/listmonk/pull/3281
* @velsa made their first contribution in https://github.com/knadh/listmonk/pull/3263
* @pcbeingused333 made their first contribution in https://github.com/knadh/listmonk/pull/3287

**Full Changelog**: https://github.com/knadh/listmonk/compare/v6.2.0...v7.0.0-beta.1

Related Repositories