We send 18k transactional emails a month, all behavioral (sign-ups, password resets, billing receipts). No marketing sends. Three candidates evaluated against the five things that actually matter at our scale.
Best deliverability on transactional-only sending, the cleanest webhook story, and pricing that's within $9/mo of SES once you account for the engineering hours we currently spend babysitting bounces.
| Criterion | Resend | Postmark | SES |
|---|---|---|---|
| Transactional deliverabilityinbox placement, last 90d benchmark | Solid; 97.2%. Shared IP pools. |
Highest of the three; 99.1%. Separates marketing IPs entirely. |
Variable; 92–98% depending on warmup and bounce hygiene. What we'd need to doSet up dedicated IPs, run our own warmup, monitor SNS for bounces and complaints, and quarantine senders manually. ~2 weeks one-time, ~2 hrs/month ongoing. |
| Webhook reliabilitybounce / complaint / delivery events | Webhooks land in ~30s; retries up to 8h. |
Webhooks land in ~5s; retries up to 24h with backoff. |
SNS-based; reliable but you're handling SNS subscription confirmation and signature verification yourself. |
| Templating & DXhow we author and version email bodies | React Email is a real edge; preview in dev, type-safe props, MJML under the hood. |
Hosted templates with versions and Mustache; less ergonomic but no client library required. |
None. BYO templating, BYO preview tool, BYO version control story. |
| True monthly costat our 18k/mo, fully loaded | $20 on the 50k tier; under-utilized. |
$15 on the 10k tier, $25 if we cross. Slated cost. |
~$2 in API costs but ~$200/mo of engineering time fully loaded. How we arrived at the $200Avg of 4 hrs/mo over the last quarter spent on bounce dashboards, complaint quarantine, and warmup babysitting × $50/hr blended. Not zero. |
| Migration riskdays of work, breaking changes | ~2 days. SMTP-compatible drop-in for our existing nodemailer code. |
~2 days. SMTP-compatible; we rewrite templates as a one-time chore. |
~1 week. AWS SDK, IAM, SNS, dedicated IP request — none of it hard, all of it adds up. |