Skip to content
Backpack
Esc
navigateopen⌘Jpreview
On this page

ADR 09: Two-tier email

Self-hosted mail for transactional, Listmonk plus SES for scale.

Status: adopted (2026-07-18)

Context

Need: transactional email for the fleet, newsletters for small clients, and one client with a 1.5M-subscriber list wanting cheap, high-quality newsletters. Vendor claim of “80k emails/week for $0 on a $5 VPS” is credible at that volume and dangerously wrong at 1.5M per send.

Decision

Tier 1, fleet transactional and small newsletters: the Openship mail server on our VPS. Per-client domains, DKIM auto-configured, low volume, high value.

Tier 2, the 1.5M list: Listmonk (self-hosted campaign manager, built for multi-million lists) relaying through Amazon SES at $0.10 per thousand. A full-list send costs about $150 versus $10k+/mo for an ESP at that contact count. Dedicated sending subdomain (news.clientdomain.com) so reputation is isolated.

Non-negotiables at scale

  • Never mix the bulk stream and fleet transactional on the same IP or domain reputation. One bad campaign must not take down password resets for every client.
  • Validate the list before first send (expect 5 to 10 percent dead addresses; over 5 percent bounces gets the SES account suspended).
  • Warm up over weeks with ramping volume. SES production access starts around 50k/day and is raised on request.
  • Wire SES bounce and complaint webhooks into Listmonk suppression.
  • Gmail/Yahoo bulk rules: DMARC, one-click unsubscribe, spam rate under 0.3 percent in Postmaster Tools.

This is also a sellable service: running a 1.5M newsletter for hundreds per month in infra instead of five figures in ESP fees.

Was this page helpful?