listmonk logo

listmonk

High performance, self-hosted newsletter and mailing list manager

Alternative to: mailchimp


About Versions (41)

v5.0.0

2025-04-28

Skip this release and upgrade to v5.0.2 instead for multiple fixes (UX bugs and a security fix)

Changelog

  • 3b8a8c23 Add email-builder/dist to .gitignore.
  • 8902320a Update screenshot on README.
  • a7085cb5 Update homepage.
  • 11f52ee8 Switch migration version to v5
  • 47e8f816 Default body_source to null instead of empty string in non-visual campaigns.
  • 925cdf28 Add visual template and new permissions to docs.
  • 1599957d Add and auto-translate missing i18n strings in all language packs.
  • db81dc1d Remove default dummy admin notification email settings.
  • 9de19ea2 Fix Codemirror Cypress tests in templates and form pages.
  • 92fc6469 Update sdks.md: add client for java/kotlin (#2426)
  • 81b62a4a Fix race condition in immediate campaign pause-start actions.
  • d3c8eca4 Upgrade Go deps.
  • 0dc29b7d Fix CSV example on the subscriber import UI.
  • 953deef4 Hide ‘New’ and ‘Save’ buttons on the templates UI if there’s no manage permission.
  • 77913275 Make Must config variables non-Must so that the app doesn’t panic on their absence.
  • 8fc3d27b Merge pull request #2423 from knadh/dependabot/npm_and_yarn/frontend/email-builder/vite-5.4.18
  • 3dfdf48d Merge pull request #2424 from knadh/dependabot/npm_and_yarn/frontend/email-builder/babel/runtime-7.27.0
  • 12bc7986 Make OIDC provider name display on login button configurable. Closes #2211
  • 88854376 Bump @babel/runtime from 7.26.0 to 7.27.0 in /frontend/email-builder
  • 6707b634 Bump vite from 5.4.10 to 5.4.18 in /frontend/email-builder
  • 5477c169 Merge pull request #2373 from knadh/feat-visual-editor
  • ed700d7a Add a Preview option to the campaign archive tab. Closes #2245.
  • b67fc5ea Replace CodeFlask code editor with CodeMirror on the UI.
  • 53d79297 Prepare first RC.
  • ffbda019 Add sample visual campaign template on install and upgrade.
  • 445d7e53 Fix clone campaign by fetching campaign body on clone.
  • 1559c55a Add visual editor Cypress tests.
  • ded0fcfa Fix broken visual template cloning on the templates UI.
  • dcdef8ea Add format/content type selection to campaign creation UI.
  • d3da0be6 Fix `test campaign’ sending wrong template for visual campaigns.
  • 5207dff7 Fix visual editor change event/init/import sequences.
  • 968b366b Stop fetching bodies for all campaigns and explicitly fetch for visual campaign import.
  • 20e4b100 Fix DB state issues in visual campaign cloning.
  • f4c0e66a Refactor ‘media upload’ integration in campaign visual editor.
  • 3aba2b00 Fix frontend/email-builder Makefile build steps.
  • 343d405b Add Ctrl+S campaign save shortcut and add Ctrl+S and F9 to richtext editor.
  • e4e735e0 Update tsx formatting in email-builder.
  • 503e9855 Add support for converting all types to visual editor blocks.
  • f1fbadf6 Fix incorrect template states in DB in campaign creation and broken preview.
  • cee2589a Move email-builder src from / to /frontend.
  • 110345d6 Refactor and simplify state management in campaign editor.
  • fca5ec5a Change visual editor UI language.
  • 7786b184 Add DB migrations for visual editor.
  • c1f81cfa Fix compatibility issues with master.
  • 82e2b705 fix: Move visual-editor to iframe so that CSS styles are isolated.
  • 4a524c93 feat: Integrate media selector to visual editor and add minor fixes.
  • e6f08a05 feat: Inject email-builder instead of loading it as ES module
  • ae982808 feat: Integrate email-builder on campaign/template editor UI and backend.
  • 5a0980e5 Add on-hover one-click Copy button to subscribers and campaigns tables UI.
  • a85e467c Add missing charset for numbers in TrackLink regex. (#2404)
  • fb527008 Remove GET /api/settings dependency on the Lists -> Forms UI.
  • b44ea0c3 Merge branch ‘fix-sql-search’
  • 75aad8ec Add new search param to paginated API response structure.
  • 29591c18 Add get list permission check to bulk subscriber list management.
  • fca8d6de Bump vite from 5.4.17 to 5.4.18 in /frontend (#2416)
  • 4b805f88 Fix broken subscribers:sql_query permission.
  • 375e3856 Bump golang.org/x/net from 0.36.0 to 0.38.0 (#2413)
  • 4d8c8cde Update installation.md (#2405)
  • 5971bc4a Fix Raw CSV example on import UI (#2392)
  • 562e52cd Introduce LISTMONK_ADMIN_API_USER to --install. Closes #2314, #2322.
  • b3e6b099 Bump vite from 5.4.15 to 5.4.17 in /frontend (#2391)
  • 0826f401 Remove repetitive URL param :id validation and simplify handlers.
  • e6d3aad0 Add ability to wait and healthcheck for backend app in Cypress settings tests.
  • 78366ab7 Clean up main initialization to remove app interdepencies in init.
  • 88489223 Remove superfluous consts dep in init functions by separating URL consts.
  • e2f24a14 Turn notifs into a special stateful global singleton package, removing clunky deps.
  • e327ebbb Move all HTTP handlers directly to App and remove the redundant in-between layer.
  • b3d46a8c Refactor system notification callbacks into a new notifs package.
  • 00c858fc Refactor all HTTP handlers and attach them to a single struct.
  • 007f4de8 Fix a number of cosmetic inconsistenies across handlers and functions.
  • fcf2449a Replace awkward auth user object access in handlers with an explicit func.
  • 17998fbf Refactor user auth models and permission checks.
  • 5c785064 Refactor superfluous list perm check middleware into standalone function.
  • a271bf54 Introduce per-campaign filter permissions. Closes #2325.
  • a5f8b28c Fix inconsistent behaviour in campaign scheduling on the UI.
  • fbc27ae4 Refactor UI time diff display function to prefix ’-’ on past dates.
  • 92e5d630 Fix various static-check/idiom warnings.
  • b18c7ad0 Fix incorrect loading spinner on the Lists UI. Closes #1822.
  • d1c964da Bump vite from 5.4.12 to 5.4.15 in /frontend (#2379)
  • b8f50eaf Add support for domain allowlists in addition to blocklists. Closes #2230.
  • 6efb6e76 Upgrade smtppool to v2 and add support for concrete SSL options.
  • e4a18dab Remove forcing unique filename on all media uploads.
  • ef8f3191 Remove obsolete language key and refresh i18n files.
  • 9224e344 Update i18n refresh script to remove deleted base keys from all other files.
  • 5f1b6764 Remove ASCII-only restriction on media filenames. Closes #2277.
  • 0be7a79d Fix broken log rendering on importer UI.
  • 1b43e1a0 Add minor i18n Hungarian language pack fixes (#2375)
  • 06c2f3b9 Add Nuxt.js module to Supported Libraries Lists (#2371)
  • 473f9427 Add i18n Hungarian language pack fixes (#2370)
  • 7d3e6e61 Fix too greedy TrackLink regex replacement. (#2355)
  • 79f8b60e Updating documentation to reflect AWS Console changes (#2365)
  • 625f6167 Change the docker-compose example to bind Postgres locally. Closes #2357.
  • de9a8ea4 Add Bulgarian i18n translation (#2349)
  • f3101316 Update Go version to v1.24.1
  • d43ac107 Tidy go.mod
  • f34551d2 Bump golang.org/x/net from 0.33.0 to 0.36.0 (#2348)
  • 2005e7a4 Bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4 (#2346)
  • bc5b8175 Bump axios from 1.7.9 to 1.8.2 in /frontend (#2347)
  • a9869612 Disallow private list UUIDs on public sub endpoints. Closes #2296.
  • 8dc5bc29 Bump prismjs from 1.29.0 to 1.30.0 in /frontend (#2345)
  • f8d07ad9 Fix DELETE list documentation. (#2335)
  • 06768ba8 Fix ru i18n lang (#2330)
  • e649cf6f docs: improve clarity and consistency of user-related translations (#2324)
  • d3a417d1 Fix typo in function name.
  • 2defef38 Refactor SMTP name to always have email- prefix for consistency.
  • 24af0bc2 Update ca.json (#2303)
  • d055cc53 Add support for selecting SMTP per campaign (#2290)
  • 756e3915 Fix typos in subscribers.md (#2302)
  • 61d7a9d2 Update cs-cz.json (#2293)
  • 2f5ab4c6 Display filename and milliseconds in timestamp on the logs admin UI (#2280)
  • ad162c25 Bump vite from 5.4.11 to 5.4.12 in /frontend (#2268)
  • 86f9ad05 Add Norwegian Bokmål (no.json) i18n language pack (#2289)
  • d0321baf fix: typo in callout under the settings page (#2283)
  • c3069e55 Update Finnish translation (#2270)
  • 672d8ffb Merge pull request #2269 from s-en-o/patch-1
  • 1446fbb5 fix(static): no matching closing anchor tag
  • 7153777b Merge pull request #2266 from vinitparekh17/patch-1
  • 7c952e78 docs: removed duplicate line
  • afa717fd Upgrade smtp-pool lib fixing non-FQDN hostnames. Closes #2146.
  • ff19a34f Fix bounce meta JSON overflowing in the table on admin UI. Closes #1797.
  • 0e49a4bb Merge pull request #2264 from knadh/edit-campaign
  • 3d383cd5 Make paused campaigns editable.
  • 5ba0adcb Automatically switch scheduled campaigns to draft when send_at date it removed.
  • 61c6b7e1 Add explicit Unschedule button on campaign UI.
  • fd31ac6f Remove redundant send_later param in campaign POST/PUT.
  • e8fd12bd Add List-Unsubscribe header to opt-in confirmation mails. Closes #2224.
  • 2e8a5ace Add user roles/perms documentation. Closes #2242.
  • 0930a22b Add VACUUM to maintenance section in docs.
  • e2aa9c53 Make media image background checkered to show transparency. Closes #2080.
  • c8771562 Bump golang.org/x/net from 0.23.0 to 0.33.0 (#2253)
  • a5e56c34 fix: forwardemail bounce processing invalid signature issue (#2250)
  • 0878f3e6 Add Laravel SDK to Supported Libraries Lists (#2240)
  • 50b296da Remove GitHub from OIDC shortcuts as it doesn’t support OIDC. Closes #2235.
  • b75de39f Fix elest.io image in docs (#2239)
  • cb9b7985 Fix typo in de i118 (#2236)
  • 62c996bc Fix typo (#2233)
  • 2abc0a86 Apply minor Go code fixes (#2219)
  • 98934e60 Fix outdated docker local dev suite (#2200)
  • 97fde644 Make CSV (import) header fields agnostic of surrounding spaces. Closes #2189.
  • 63712285 Fix schema and add migration for incorrect subscriber count (null) in materialized view.
  • 5c0de6ef Fix broken sorting lists by subscriber_count. Closes #2151.
  • 7bfbd6a8 Add all to subscriber deletion by query which broke with query validation. Ref: #2122.
  • a1291114 Replace broken indent JS lib with js-beautify. Closes #2182.
  • 1c33d32b Remove redundant event from bounces UI. Closes #1850.
  • cb99d600 Fix loading of messengers from serverConfig on line 629 (#2187)
  • 3f5bad1a Fix incorrent curl command in docs.
  • fce46b21 fix: update OpenAPI specs for routes and correct docs for campaign endpoints (#2179)
  • 882c49f1 Bump cross-spawn from 7.0.3 to 7.0.6 in /frontend (#2169)
  • ee9677cd removes example properties from attribs property and allow additional properties (#2154)
  • 1451c4b1 Improve API auth/permission docs and examples.
  • 392bc872 Add curl example to subscriber import docs.
  • 1198f6f3 Update release link on static site homepage.

New Contributors

Full Changelog: https://github.com/knadh/listmonk/compare/v4.1.0…v5.0.0