Your agency sends a monthly client newsletter. Mailchimp wants $350 because your list crossed a tier. The subscriber export is hostage to their platform. CASL asks where consent records live and you point at a SaaS dashboard you don't control. Someone suggests "just use BCC" and legal winces.
listmonk is the self-hosted exit. ~22k GitHub stars, AGPLv3, and a newsletter and mailing list manager in a single Go binary — PostgreSQL backend, modern Vue dashboard, campaigns, subscriber lists, analytics, and a transactional email API. Pay for SMTP, not per subscriber.
What it actually does
listmonk is email list software you run, not a full mail server. You connect an SMTP provider (Amazon SES, Mailgun, SendGrid, Postfix on your box) and listmonk handles subscribers, templates, campaigns, and delivery orchestration.
Newsletter campaigns. Rich HTML templates, list segmentation, scheduled sends, open/click tracking, bounce handling. Built for bulk mail that isn't spam — opt-in lists, unsubscribe links, the mechanics CASL and CAN-SPAM expect when you configure them properly.
Subscriber management. Multiple lists, custom attributes, import/export, query subscribers with SQL-like filters. PostgreSQL stores everything — your data, queryable, backup-able.
Transactional API. Send password resets, order confirmations, and notifications via pre-defined templates through a REST API — not just monthly blasts.
Messengers. Extend beyond email to SMS, WhatsApp, or other channels via messenger interfaces when configured.
Performance. Single binary, no Redis rabbit hole for small and medium lists. Designed to handle large sends without the bloat of enterprise marketing clouds.
listmonk vs n8n vs Plausible
We've covered adjacent tools — different lanes:
- n8n — workflow automation; can send emails as one step in a flow, not a dedicated list manager
- Plausible — website analytics, not email
listmonk is for teams whose core problem is lists and campaigns — agency newsletters, product update emails, community digests, transactional templates with subscriber history in one place.
Why self-host?
Subscriber data stays yours. Emails, consent timestamps, custom fields — in your PostgreSQL on a Canadian VPS, not a US marketing platform's multi-tenant database.
No per-subscriber pricing. Mailchimp, ConvertKit, and friends scale fees with list size. listmonk costs server + SMTP — send to 500 or 50,000 without the platform taking a bigger cut.
CASL and PIPEDA paperwork. "Our list lives in Postgres on infrastructure we control in Canada" is a cleaner answer than "we use a US vendor and hope their DPA holds."
Transactional + marketing in one app. API for app emails, dashboard for campaigns — one subscriber store instead of stitching Mailchimp and SendGrid metadata together.
What running it takes
Official Docker Compose:
curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml
docker compose up -d
Dashboard on port 9000. PostgreSQL included in the compose file. First login walks you through admin setup.
Configure SMTP in Settings — listmonk doesn't send mail without a relay. Set up SPF, DKIM, and DMARC on your sending domain or deliverability suffers regardless of software. Enable 2FA in security settings for production.
Back up the Postgres volume — that's your entire list. Put HTTPS in front. AGPLv3: if you modify listmonk and expose it to users over a network, know your compliance obligations.
Who it's for (and who should skip it)
Good fit: agencies with client newsletters, SaaS teams sending product updates, communities with opt-in digests, developers who want transactional + marketing email from one self-hosted stack.
Maybe skip it: you send email once a year to twelve people — BCC might suffice. You need full marketing automation with lead scoring and CRM sync — listmonk is focused, not Salesforce. You won't configure SMTP/DNS — without a working relay, nothing sends.
Hosting it in Canada
We run listmonk on Canadian Docker hosting — Postgres backups, TLS, and network placement so subscriber data stays domestic. Pair with a reputable SMTP provider or your own relay.
Tell us your list size and send volume — we'll size the box and remind you about DKIM before the first campaign lands in spam.