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.
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 dbBreaking changes
- The
app.from_emailsetting 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 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.
- 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
Fromaddresses 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
emailmessenger pool. - A one-click Gmail Relay SMTP preset, with support for a custom
HELOhostname. - Improved POP bounce processing that handles many new scenarios.
- Support for plain text notification emails via
*-text.txttemplates. - Throttling for opt-in confirmation emails.
- One-click unsubscribe via the
List-Unsubscribeheader now also removes unconfirmed subscriptions. - New i18n translations and improvements.
Fixes
- Multiple security fixes: permission checks, tightening of
sqlpermission 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
@TrackLinkUnicode edge cases.
And numerous other improvements and fixes ...
New Contributors
- @ch4og made their first contribution in #3125
- @corretge made their first contribution in #3141
- @shustovTE made their first contribution in #3136
- @imparpaulo01 made their first contribution in #3152
- @odpay made their first contribution in #3142
- @ecogetaway made their first contribution in #3205
- @pavel1337 made their first contribution in #3204
- @joshuaboniface made their first contribution in #3171
- @derekantrican made their first contribution in #3234
- @moojen made their first contribution in #3232
- @spatterIight made their first contribution in #3242
- @kreshot made their first contribution in #2919
- @codedoga made their first contribution in #3247
- @CoderNasim2023 made their first contribution in #3265
- @biofool made their first contribution in #3255
- @bjarn made their first contribution in #3254
- @Sudaisib made their first contribution in #3201
- @mherzog4 made their first contribution in #3169
- @nemunaire made their first contribution in #3056
- @fuhrysteve made their first contribution in #3219
- @sadfun made their first contribution in #3277
- @CReimer made their first contribution in #3273
- @Mohamed-Almarag made their first contribution in #3281
- @velsa made their first contribution in #3263
- @pcbeingused333 made their first contribution in #3287
Full Changelog: v6.2.0...v7.0.0-beta.1
