Elixir newsletters delivered through SMTP, SES or Postmark
Keila is an open source newsletter tool written in Elixir on the Phoenix framework. You write campaigns for your contact lists and build signup forms to embed on a website. A self-hosted instance doesn't deliver mail by itself: each sender goes through an SMTP server, AWS SES, Sendgrid, Mailgun or Postmark. The README says a small newsletter can go out through your own mailbox, and lists those services for larger projects. Keila's website pitches it as an open source alternative to Mailchimp and Brevo, and the company behind it also sells a hosted version, Keila Cloud.
listmonk also relies on external SMTP servers, from a single Go binary backed by PostgreSQL, and its website only lists third-party hosts it has no affiliation with. BillionMail goes the other way and describes itself as a mail server and an email marketing platform in one.
The comparison of self-hosted newsletter tools sets out what each tool handles on its own and what it leaves to the SMTP relay.
Behavior-based segments and captcha-protected signup forms
- Several ways to write: a block editor, Markdown, plain text or MJML. Since 0.30.0, templates can also be plain HTML, and an MJML, HTML or plain-text template can declare slots (
<keila-content>) that get filled in the editor or through the API. Liquid personalizes content per contact. - Protected signup forms: hCaptcha or Friendly Captcha, double opt-in, and a welcome email since 0.19.0. An opt-in or unsubscribe link clicked within three minutes of sending only takes effect after an automatic JavaScript step or a second click.
- Segments built on behavior: since 0.18.0, a segment can filter contacts on how they interacted with past campaigns, and each sent campaign can get a public archive link.
- Tracking you can switch off: Keila's website says its analytics collect only what's needed, and tracking can be disabled entirely.
- An API for contacts, campaigns and transactional mail: 0.30.0 added one-off sends (
POST /messages), render-only previews and template management.
Paid Cloud for managed sending, AGPL with a carve-out
Managed sending is Cloud-only. Keila Cloud adds Send with Keila, the company's own delivery service, which the senders documentation limits to keila.io customers. A self-hosted instance sends through SMTP or one of the four services above, on accounts you set up yourself. Keila Cloud runs on European infrastructure in Germany and France, and the company countersigns a GDPR data processing agreement (DPA), available in English and German.
Keila Cloud is priced by sending volume, with no free plan. Six plans run from €8 a month for 2,000 emails to €256 for 250,000. Every plan includes unlimited contacts and projects and lets you pick between Send with Keila and your own mail server. The pricing page explains the missing free tier: Keila is "a small bootstrapped business" that will never sell its customers' data.
AGPL-3.0, except the Cloud code. Keila is licensed under AGPL version 3 "or (at your option) any later version", excluding the logo and the extra/ directory. That directory holds the code specific to Keila Cloud: billing, accounts, Send with Keila. Since 0.18.0 it has been published for information only; its README forbids using it, modifying it or distributing modified versions, as well as writing an equivalent proprietary extension. For the rest of the code, anyone running a modified version as a network service must publish its source.
Self-hosted Keila runs in a container next to PostgreSQL. The installation docs name a single dependency for the pentacent/keila image: a PostgreSQL database. Configuration requires DB_URL, a SECRET_KEY_BASE of at least 64 characters and an SMTP server for system emails. User uploads stay on local disk (./uploads by default). Behind a reverse proxy, WebSockets have to get through, which takes extra configuration on nginx. Sign-up is open by default and closes with DISABLE_REGISTRATION=true. The Compose file in the repository says it's meant for local testing, not production, and no memory requirement is documented.
Keila is still 0.x, with one main developer. Version 0.30.3 shipped on September 6, 2026, the ninth release of the year, after a gap of almost ten months between 0.17.1 (March 2025) and 0.18.0 (January 2026). Version 0.30.0 changed how MJML campaigns render (Liquid now runs before MJML) and migrated the affected campaigns automatically. One developer authored 1,234 of the 1,388 commits on the main branch. A/B tests and marketing automations are still on the website's roadmap.
