Technical
Newsletter Infrastructure: What 11 Months of SES Taught Me
I chose AWS SES for the peaklight.ai newsletter. No ESP. Just SES, Lambda, DynamoDB, a render pipeline, and a bounce handler. After 11 months and thousands of sends, the infrastructure is stable and cheap. Here is what earned its keep and what I got wrong.
What Earned Its Keep
SES cost: roughly 0.10 USD per 1000 emails. My monthly email bill runs in single-digit dollars. Substack or a comparable ESP would be hundreds.
Control over deliverability. SPF, DKIM, DMARC, warmup schedules, list hygiene: all mine. When something goes wrong I see it immediately.
Data ownership. Every open, click, bounce, complaint is in my DynamoDB. I can query, segment, and export without asking a vendor.
What Hurt
Bounces. The first month I was not handling bounces properly and my sender reputation took a hit. SES paused my account for 24 hours. The fix was an SNS topic that routes bounce and complaint events into a Lambda that updates the subscriber record.
Warmup. I tried to send to 3,000 subscribers on day one. Deliverability cratered. The fix was a slow ramp: 100 the first day, doubling every day for a week.
Rendering parity across clients. Apple Mail, Gmail, Outlook, iPhone dark mode. Every client renders a little different. I ended up with an email-tester step in the pipeline and a small collection of patterns that work everywhere.
The Architecture
Scheduled EventBridge -> Lambda renderer -> SES send
SES -> SNS bounce/complaint -> Lambda -> DynamoDB
Link clicks -> redirect Lambda -> DynamoDB -> final URLThe Patterns That Matter
Double opt-in from day one. Never a shortcut here. Unsubscribe in every email, one click, no login required. List hygiene cron that disables hard bounces, soft-bounce-N-times, and long inactives. Preheader text on every email. It is the second subject line. Plain-text version on every email. Required for deliverability and accessibility.
The Economics
At my volume: SES plus Lambda plus DynamoDB plus Route53 runs under 20 USD per month total. An ESP would be 200 USD per month minimum at the same volume. The infrastructure choice pays for itself 10x over.
Reading
AWS SES best practices is the reference. Follow it exactly before sending the first email.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read