SendMerlin

SaaS · Email 2026 04 / 10

SendMerlin is our own multi-tenant email marketing platform on AWS SES: campaigns, audiences, GDPR double opt-in and a sending pipeline priced flat instead of by list size. Built in-house by the collective.

SendMerlin
SendMerlin · 2026
The brief

Email marketing tools charge by list size and hide deliverability behind support tickets. We wanted a platform we could reason about end to end, on our own SES infrastructure, with pricing that does not punish a growing list.

Sending thousands of emails is easy. Pausing on a bounce spike at 3 a.m. without human intervention is the hard part, and that is what the build had to get right.

What we built

SendMerlin is Next.js 16 with a PostgreSQL send queue and no Redis. A separate worker claims batches with SKIP LOCKED, an atomic launch gate prevents double sends, and stale jobs re-queue themselves. The composer is GrapesJS over MJML, compiled server-side to email-safe HTML. Deliverability is handled by a reputation ramp starting at 50 sends per day and doubling to the plan ceiling, auto-pause on bounce and complaint thresholds with superadmin alerts, RFC 8058 one-click unsubscribe headers on every send, and per-client SES domain provisioning covering DKIM, MAIL FROM, DMARC and tracking.

The pipeline shipped with 222 unit tests across 38 files and 32 end-to-end tests, all green. A real worker drained a 480-recipient smoke campaign without a single miss, and the first live send landed on 16 July 2026. The platform runs as two services from one Docker image: web and worker.

  • Product architecture & build
  • Postgres send queue & worker pipeline
  • Email composer on GrapesJS & MJML
  • Deliverability: reputation ramp, auto-pause, DKIM & DMARC
  • Automated test suite & Docker deployment
  • Live at sendmerlin.com ↗
The pipeline is the product.