Skip to content
Newsletter · head-to-head

Keila vs listmonk

Updated Sep 2026prices checked · Jul 2026
We earn commissions when you shop through the links below. Full disclosure →
The verdict

Pick Keila if the people writing the newsletter want a block or Markdown editor, a form builder with captcha and double opt-in, and segments built in a visual editor, with SMTP, SES, SendGrid, Mailgun or Postmark as senders; plan for separate system-mailer SMTP settings, and note that its only bounce webhook is for SES. Pick listmonk if you send at volume or script around the tool: multi-SMTP queues with rate limits, SQL segments, Go templates, bounce handling over POP3 or six provider webhooks, messenger webhooks and per-list user roles with OIDC, in the smaller idle footprint of the two on our test box.

Side by side

Keila
listmonk
Category
Keila: Newsletterlistmonk: Newsletter
Stack
Keila: Elixir · Phoenix · PostgreSQLlistmonk: Go · Vue · PostgreSQL
License
Keila: AGPL-3.0listmonk: AGPL-3.0
Min RAM
Keila: 512 MB (our estimate)listmonk: 512 MB (our estimate)
Measured idle RAM
Keila: ~291 MBlistmonk: ~66 MB
Editors
Keila: Block, Markdown, MJML, HTML, plain textlistmonk: Rich text, visual, Markdown, HTML, plain text
Templating
Keila: Liquidlistmonk: Go templates + Sprig
Segments
Keila: Visual editor or segment languagelistmonk: SQL expressions
Sign-up forms
Keila: Form builder, hCaptcha / Friendly Captcha, double opt-inlistmonk: Single and double opt-in lists
Senders
Keila: SMTP, SES, SendGrid, Mailgun, Postmarklistmonk: Multiple SMTP queues + messenger webhooks
Bounce handling
Keila: SES webhooklistmonk: POP3 mailbox + 6 provider webhooks
Users
Keila: Root user; registration can be disabledlistmonk: User and list roles, OIDC SSO
Current version
Keila: 0.30.3listmonk: v6.2.0
Difficulty
Keila: 2 / 5listmonk: 2 / 5

Keila and listmonk are two open source newsletter tools you can run on your own server instead of paying a per-subscriber bill. Both are AGPL-3.0, both store subscribers in PostgreSQL, and neither sends mail itself: you connect an SMTP server or an email provider. The differences are in who each one is built for. Keila is closer to a hosted newsletter tool, with a block editor, a form builder and segments you can build without code. listmonk is a single Go binary built for throughput and scripting, with SQL segments, Go templates, several SMTP queues and a transactional API.

Writing a campaign

Keila offers several ways to write a campaign: a block-based visual editor, Markdown, MJML for fully custom responsive layouts, HTML and plain text. Version 0.30.0 added MJML, HTML and plain-text templates with content slots that you fill in the campaign editor or through the API. Personalisation uses Shopify's Liquid template language against contact data stored as JSON.

listmonk campaigns have five content types in the code: rich text, HTML, Markdown, plain text and visual. The visual email builder arrived in v5.0.0. Templates are Go templates with "100+ useful Sprig template functions", usable in subjects, bodies, headers and transactional messages. Liquid is simpler for basic merge fields. Go templates give you more logic but are less familiar to people outside Go.

Lists, segments and forms

Keila lets you "create segments based on user data and behavior" with a visual editor or its segment language. Its form builder adds checkboxes, text fields and dropdowns to sign-up forms. It protects them with hCaptcha or Friendly Captcha plus double opt-in. Open and click tracking can be switched off "with a single click". CSV import and export and an API are included.

listmonk manages "single and double opt-in lists" and queries subscribers "with SQL expressions". That is very flexible if you know SQL, and harder if you do not. The raw-SQL permission is powerful enough that listmonk's docs warn to "Give this permission ONLY to trusted users". Built-in analytics cover campaign performance, bounces and top links.

Sending and bounces

Both need something to send through.

Keila supports five sender types: SMTP, Amazon SES, SendGrid, Mailgun and Postmark. Keila also needs SMTP settings of its own: the MAILER_SMTP_* variables are a system mailer for sign-up and password-reset emails, separate from the senders your campaigns use. For bounces, the only provider webhook route in Keila's router is for Amazon SES.

listmonk sends through SMTP with "multi-threaded, high-throughput, multi-SMTP e-mail queues" and throughput and sliding-window rate limits. Messenger webhooks let it send SMS, WhatsApp or push notifications through your own HTTP endpoint. Bounce processing is broader. listmonk can scan a POP3 mailbox or accept bounce webhooks from Amazon SES, Azure Communication Services, SendGrid, Postmark, Forward Email and Lettermint. It sorts bounces into soft, hard and complaint and can blocklist subscribers once a threshold is reached. If you send through one of those five other providers, or can route bounces to a POP3 mailbox, listmonk handles bounces without extra code.

Both have a transactional API. Keila added POST /messages in 0.30.0. listmonk's API sends "arbitrary transactional messages to subscribers using pre-defined templates".

Users and access

Keila creates a root user on first start. Without KEILA_PASSWORD set, it generates a random password and prints it to stdout, which is why the install snippet sends you to docker compose logs. DISABLE_REGISTRATION turns off public sign-up.

listmonk has supported multiple users with granular permissions since v4.0.0. Permissions are grouped into user roles and list roles, so a user can be limited to certain lists. Login is by password or OIDC. The Super Admin is created on the first visit to the web UI, or from LISTMONK_ADMIN_USER and LISTMONK_ADMIN_PASSWORD on the first start.

Install and footprint

Keila is one container plus PostgreSQL. It needs three variables: DB_URL, SECRET_KEY_BASE (at least 64 characters) and URL_HOST. It also needs the system mailer settings. Behind a reverse proxy, WebSockets must be forwarded; the docs note that Caddy and Traefik do this without extra configuration and nginx needs additional configuration. Keila is still before 1.0; the pinned image is 0.30.3.

listmonk ships an official Compose file with PostgreSQL 17. On every start it runs --install --idempotent and then --upgrade, so the schema is created once and migrated when you pull a new image. It needs PostgreSQL 12 or newer. The sample file's default database password is listmonk. Postgres is bound to 127.0.0.1, but change the password before real use. The current release is v6.2.0.

We install-tested both snippets on Ubuntu 26.04 on 2026-09-29. On our GCP e2-standard-2 test box that day, listmonk measured ~66 MB of RAM idle and Keila ~291 MB. We found no RAM requirement in either project's docs, so the 512 MB floor we list for each is an estimate. We rate both 2 out of 5 to deploy.

Which to choose

Choose Keila if the people writing the newsletter want a block or Markdown editor, forms with captcha and double opt-in, and segments built from a visual editor. Its sender list covers the common providers. It is the closer match to a hosted newsletter tool. Plan for separate system-mailer SMTP settings, and send through SES if you want automatic bounce handling.

Choose listmonk if you send at volume or want to script around the tool: several SMTP queues with rate limits, SQL segments, Go templates, bounce handling for six providers plus POP3, messenger webhooks and a role-based multi-user setup with OIDC. It measured the smaller idle footprint of the two on our test box. It asks more of the person running campaigns, especially for segments.

Choosing between listmonk and Keila

Starting from listmonk, the usual reason to switch is the people writing the newsletter: Keila's editors and form builder need less technical skill. Starting from Keila, the usual reasons are bounce handling for a provider other than SES, per-list user roles and SQL-level control over segments.

Both are listed on their own pages: Keila and listmonk.

Common questions

Keila vs listmonk: which self-hosted newsletter tool should I use?

Pick Keila if non-technical writers run the newsletter: it has a block and Markdown editor, a form builder with captcha and double opt-in, and visual segments. Pick listmonk if you send at volume or want to script around it: multiple SMTP queues with rate limits, SQL segments, Go templates, broad bounce handling and per-list user roles. Both are AGPL-3.0 and use PostgreSQL.

Which email providers can Keila and listmonk send through?

Keila supports SMTP, Amazon SES, SendGrid, Mailgun and Postmark as senders. listmonk sends through one or more SMTP servers, and its messenger webhooks can hand messages to other channels such as SMS. For bounces, listmonk accepts webhooks from Amazon SES, Azure Communication Services, SendGrid, Postmark, Forward Email and Lettermint, or scans a POP3 mailbox; Keila's only bounce webhook route is for SES.

How much RAM do Keila and listmonk use?

Measured idle on our GCP e2-standard-2 test box on 2026-09-29, listmonk used ~66 MB and Keila ~291 MB. Neither project documents a RAM requirement; the 512 MB floor we list for each is our estimate.

Where is Keila's admin password after install?

Keila creates a root user on first start. If KEILA_PASSWORD is not set, it generates a random password and prints it to stdout, so you read it with docker compose logs keila. The login defaults to root@localhost unless KEILA_USER is set.

Does listmonk need a separate database migration step?

Not with the official Compose file. Its command runs listmonk --install --idempotent, which sets up the database only once on an empty database, then listmonk --upgrade, which applies migrations when you pull a new image. listmonk needs PostgreSQL 12 or newer; the Compose file ships PostgreSQL 17.

Where to host itaffiliate disclosure
Kamateratrial either on
The entry tier is a free trial — fine for a first look. Size it up (or run the 2 vCPU / 4 GB box the cost figures above assume) once you're keeping it.1 vCPU · 1 GB RAM · 20 GB SSD · $4.00/mo
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Other comparisons with these apps

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.