Why I Chose SES and Where My ESP Stands
One of the hidden costs in building software is the slow creep of email spend. Most ESPs are designed to monetize scale, which means the more successful your product becomes, the less reasonable the pricing feels. I wanted a different path—one that treated email as an owned capability, not a metered dependency.
That’s why I moved to Amazon SES as the backbone. SES offers the reliability and deliverability I need without the premium price tag. It doesn’t pretend to be an ESP—it’s raw infrastructure. But that’s the point: I’d rather build the features I actually need on top of stable pipes than pay for bundled tools I’ll never use.
From there my ESP started to take shape, not as a “replacement ESP,” but as a thin orchestration layer that turns SES into something usable for real workflows. The focus has been on three main areas:
- Sender Resolution — every outbound message resolves its
from
domain through a clear priority chain (template → sequence → enrollment → client defaults → env). This keeps sending consistent, predictable, and compliant across tenants. - Template System — email templates live in the database with
from_name
,from_email
, andsender_domain
support. They can be used directly or inherited by sequences and workflows. - Sequences & Enrollments — the ability to define multi-step workflows that automatically send based on enrollment state. Instead of bolting on a third-party workflow engine, my ESP just makes transactional sequences a native part of the system.
Right now, my ESP handles the basics I care about: transactional sends, domain-based resolution, template management, and sequence automation. It’s not bloated, and it doesn’t try to compete with marketing platforms. It does exactly what I need: make SES usable in a way that supports the products I’m building without introducing runaway costs.
Looking back, the decision wasn’t just about saving money—it was about control. SES gave me the raw capability, and my ESP gave me the flexibility to turn that capability into something I can actually build on.
[
{
"src": "https://asmeh1vokbbgplch.public.blob.vercel-storage.com/images/1758081731531-screencapture-strongstart-digital-2025-09-16-01_18_22.png",
"caption": "1758081731531 screencapture strongstart digital 2025 09 16 01 18 22.png"
},
{
"src": "https://asmeh1vokbbgplch.public.blob.vercel-storage.com/images/1758082085183-screencapture-localhost-3000-admin-emails-templates-new-2025-09-15-15_51_53.png",
"caption": "1758082085183 screencapture localhost 3000 admin emails templates new 2025 09 15 15 51 53.png"
}
]