Technical
SES Production Setup That Survives Real Newsletter Volume
SES is the cheapest way to send real newsletter volume. It is also the service that will quietly drop your sender reputation if you configure it wrong. Eight months of sending real newsletters to real subscribers has taught me the specific pieces that matter.
The Checklist That Keeps Mail Delivered
SPF, DKIM, and DMARC all published. Not two of three. All three. Mail providers will downgrade messages missing any one. SES gives you the DKIM records at verification time. SPF and DMARC are on you to add correctly.
Dedicated IP or shared, decided deliberately. Shared IPs share reputation with other SES users. At low volume, shared is fine. Above roughly 200k sends per month, a dedicated IP is worth the fixed cost because your reputation is yours alone.
Bounce and complaint handling before you send the first batch. SES suspends accounts with high bounce or complaint rates. An SNS topic subscribed to bounce notifications, wired to a Lambda that removes the subscriber from your list, is table stakes. Skipping this step is how accounts get suspended.
The Wiring
SES -> SNS topic (bounces) -> Lambda -> DynamoDB update (mark invalid)
SES -> SNS topic (complaints) -> Lambda -> DynamoDB update (unsub)
SES -> CloudWatch alarm on bounce rate > 5%
SES -> CloudWatch alarm on complaint rate > 0.1%Three pipes, two alarms. Everything else is optional until you have a reason.
The Configuration Sets Detail
Configuration sets in SES let you tag outbound mail and route events per tag. I use one set per mail purpose: transactional, newsletter, marketing. Each has its own bounce pipeline. When one category's reputation dips, I can isolate the cause without stopping the others.
Warming Up
Do not send a 50,000-subscriber blast on day one. Ramp over a week: 1k, 5k, 15k, 30k, 50k. Mail providers learn your sending pattern. A sudden spike without history looks like a compromised account. See the SES deliverability dashboard documentation for the metrics to watch during warming.
The Testing Cadence
Every first-of-month, I send to a seed list: five addresses across Gmail, Outlook, Yahoo, a corporate domain, and my own. Check the inbox versus spam placement. This is a poor person's deliverability check, and it catches reputation drift before subscribers start unsubscribing.
SES is a professional tool that rewards professional operation. The checklist is short; the discipline is real.
The List Hygiene Habit
Inactive subscribers drag reputation. Mail providers watch engagement rates as a spam signal. Once a quarter, I segment my list into 'engaged in the last 90 days' and 'dormant', and send the dormant cohort a single re-engagement email. No click, no open: removed. Trimming the list feels counterproductive when you are trying to grow. In practice, a smaller engaged list delivers better and converts better than a bloated list with dead weight. Quality over quantity, measured in inbox placement.
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