Vanessa LozzardoSendkit vs Amazon SES: managed platform vs DIY infrastructure
Amazon SES is cheap per email but expensive in engineering time. Here's when each makes sense.

Amazon SES is the go-to answer when someone asks "what's the cheapest way to send email?" And they're right — at $0.10 per thousand emails, nothing touches it on raw per-message cost. But that number hides the real price: the engineering time required to turn SES into a production-grade email system.
Sendkit takes the opposite approach. You get a managed platform with campaigns, automations, contacts, email validation, analytics, and webhook-driven event tracking — all behind a clean API. You pay more per email. You pay dramatically less in everything else.
Here's how they actually compare when you look past the headline pricing.
The real cost of Amazon SES
SES costs $0.10 per 1,000 emails. That's the number everyone fixates on. But SES is a sending pipe, not an email platform. Here's what you need to build yourself:
- Bounce handling — SES publishes bounce notifications via SNS. You need a Lambda (or equivalent) to consume them, parse the bounce type, and update your sending lists. Hard bounces need immediate suppression. Soft bounces need retry logic with exponential backoff.
- Complaint processing — Same pattern. ISPs send complaint feedback loops through SES to SNS. You need to process these and suppress those addresses immediately, or your reputation tanks.
- Suppression list management — SES has a basic account-level suppression list, but it's limited. For anything serious, you're maintaining your own suppression database across bounce types, complaint types, and manual unsubscribes.
- Analytics and monitoring — SES gives you CloudWatch metrics and event publishing to SNS/Kinesis. Turning that into a usable dashboard means piping events into a data store, building aggregations, and creating a UI. Or paying for a third-party tool on top.
- Template management — SES has basic templates, but no visual editor, no version history, no A/B testing. You're storing templates in your codebase or building a template service.
- Reputation monitoring — SES gives you a reputation dashboard in the console, but proactive reputation management (monitoring per-domain metrics, adjusting sending patterns) is entirely on you.
Each of these is a real engineering project. Conservatively, you're looking at 2-4 weeks of backend work to get the basics running, and ongoing maintenance after that. At an engineering cost of $150/hour, that's $12,000-$24,000 before you've sent a single campaign.

What Sendkit includes out of the box
Sendkit is a complete email platform. Everything in that list above ships as a feature, not a project:
- Automatic suppression — Bounces and complaints are processed and suppressed automatically. No Lambda functions, no SNS topics, no custom database tables.
- Email validation — Validate addresses before you send. Catch typos, disposable domains, and invalid mailboxes. This alone prevents most deliverability problems before they start. If you want to dig deeper, check out our guide on validating email addresses before sending.
- Campaigns — Visual campaign builder with scheduling, segmentation, and analytics. No need to bolt on Mailchimp or build your own.
- Automations — Trigger-based email sequences. Welcome series, onboarding drips, re-engagement flows — all configurable without code.
- Contact management — Import, segment, and manage your contact lists with tags and custom fields. No per-contact pricing surprises.
- Analytics dashboard — Opens, clicks, bounces, complaints, and delivery rates. Per-email and aggregate. No CloudWatch required.
- Webhooks — Real-time event delivery for every email event. Build integrations without polling.
The tradeoff is clear: SES gives you a cheaper pipe. Sendkit gives you a platform.
Developer experience
This is where the gap is widest.
Amazon SES
SES uses the AWS SDK. If you've worked with AWS, you know what that means: verbose configuration, region-specific endpoints, IAM roles, and SDK initialization that looks like this:
import { SESClient, SendEmailCommand } from '@aws-sdk/client-ses';
const client = new SESClient({ region: 'us-east-1' });
const send = async () => {
const command = new SendEmailCommand({
Source: '[email protected]',
Destination: {
ToAddresses: ['[email protected]'],
},
Message: {
Subject: { Data: 'Welcome aboard' },
Body: {
Html: { Data: '<p>Thanks for signing up.</p>' },
},
},
});
const response = await client.send(command);
};That's a lot of nesting for "send an email." And this is the simple case — add attachments, CC/BCC, or configuration sets and it gets worse. The AWS SDK is designed for generality across hundreds of services, not for email ergonomics.
Sendkit
Sendkit's API is built specifically for email. The SDK is available in 10 languages and follows modern conventions. The full documentation covers every endpoint with copy-paste examples.
import { Sendkit } from 'sendkit';
const sendkit = new Sendkit('sk_live_xxx');
const send = async () => {
const { data, error } = await sendkit.emails.send({
from: '[email protected]',
to: '[email protected]',
subject: 'Welcome aboard',
html: '<p>Thanks for signing up.</p>',
});
};Flat structure. Predictable responses. No IAM configuration. You get an API key from the dashboard and you're sending in under a minute.

Deliverability
Both SES and Sendkit support SPF, DKIM, and DMARC. If you haven't set those up yet, our guide on setting up DMARC, DKIM, and SPF walks through it step by step. Authentication is table stakes — the difference is what happens after setup.
With SES, reputation management is your problem. You need to monitor your bounce rate, complaint rate, and sending patterns. If your bounce rate crosses 5% or your complaint rate crosses 0.1%, SES will put your account under review or suspend sending entirely. There's no gradual degradation — you go from sending to not sending.
To stay healthy, you need to:
- Clean your lists regularly (or build automated list hygiene)
- Process bounces and complaints immediately
- Warm up new IPs gradually
- Monitor per-domain reputation metrics
Sendkit handles suppression automatically. When an email bounces or generates a complaint, that address is suppressed across your account. No manual intervention, no custom processing pipeline. Combined with built-in email validation, you can catch bad addresses before they ever hit your sending infrastructure.
For a deeper look at what actually moves the needle on deliverability, read our post on improving email deliverability.
Pricing comparison
Here's the straightforward comparison:
Amazon SES:
- $0.10 per 1,000 emails
- No free tier (unless you're sending from EC2, which gets 62,000 free/month)
- Additional charges for dedicated IPs ($24.95/month each), email validation, and data transfer
- Plus: your engineering costs to build everything around it
Sendkit:
- Free tier: 3,000 emails/month
- From $15/month for 10,000 emails
- All features included: campaigns, automations, contacts, validation, analytics
- No per-contact fees
- Full pricing details
At low volume, Sendkit is genuinely cheaper when you factor in zero engineering overhead. At medium volume (tens of thousands per month), Sendkit costs more per email but still saves money overall because you're not maintaining custom infrastructure.
The crossover point — where SES becomes cheaper even accounting for engineering costs — depends entirely on your team. If you already have an email infrastructure team and you're sending millions per month, SES makes financial sense. If you're a startup or a small engineering team, the math overwhelmingly favors a managed platform.
When SES actually makes sense
I'm not going to pretend SES is never the right choice. It makes sense when:
- You're sending millions of emails per month and the per-email cost difference is material
- You have a dedicated email/infrastructure team that can build and maintain the supporting systems
- You're already deep in the AWS ecosystem and your team knows IAM, SNS, Lambda, and CloudWatch
- You only need transactional sending and have no plans for campaigns or automations
If all four of those are true, SES is a reasonable choice. That describes maybe 5% of the companies I've seen evaluating email providers.
When Sendkit makes sense
For everyone else — and that's most teams — Sendkit is the better path:
- You want to send your first email in minutes, not days
- You need campaigns, automations, and contact management without bolting on additional tools
- You'd rather pay $15/month than spend two weeks building bounce processing infrastructure
- You want clean SDKs in your language of choice with straightforward documentation
- You care about deliverability but don't want to babysit reputation metrics manually
The verdict
Amazon SES is cheap if you only count the per-email cost and ignore everything else. Once you factor in the engineering time to build bounce handling, suppression lists, analytics, template management, and reputation monitoring, it's one of the more expensive options available.
Sendkit costs more per message. It costs far less in total. You get a complete email platform — API, campaigns, automations, contacts, validation, webhooks, and analytics — without building any of it yourself.
If you have a dedicated email infrastructure team and you're sending at massive scale, SES can work. For the vast majority of teams, the managed platform wins on every metric that matters: time to first email, total cost, feature completeness, and developer experience.
Start with Sendkit's free tier and send 3,000 emails per month. You'll know within a day whether it's the right fit.
Share this article