# An Amazon SES alternative, without building the rest.

URL: https://samva.dev/compare/amazon-ses

SES sends the email; Samva is the rest of the stack, already built: delivery events as signed webhooks, a dashboard, versioned templates, suppression, and replies threaded back to your app.

Prices checked September 29, 2026

## Who should switch, and who should stay.

Switch if

- You are about to build events, a dashboard, templates, and suppression on top of SES.
- You want replies to your email back in your app without writing a raw MIME parser.

Stay on Amazon SES if

- You already run events, templates, and suppression on AWS with a platform team, and the lowest cost per email matters most. SES transport is cheaper at every volume.

## What a month costs on each.

| Provider | 10k/mo | 50k/mo | 100k/mo | 500k/mo |
| --- | --- | --- | --- | --- |
| Samva | $5 (Starter) | $19 (Growth) | $44 (Growth plus 50,000 extra at $0.50 per 1,000) | $199\* (Scale plus 200,000 extra at $0.50 per 1,000) |
| [Amazon SES](https://aws.amazon.com/ses/pricing/) | $1 (À la carte, transport only) | $5 (À la carte, transport only) | $10 (À la carte, transport only) | $50 (À la carte, transport only) |

\* Needs the spend limit raised from its $50 default.

Amazon SES: transport only. Events, a dashboard, templates, and suppression are yours to build. New accounts start on Essentials at $0.16 per 1,000.

As the Amazon SES pricing page listed it on September 29, 2026, SES is priced as transport only: $0.10 per 1,000 emails à la carte. New accounts start on Essentials at $0.16 per 1,000 unless you switch. Events, a dashboard, templates, and suppression are yours to build.

## What each one ships.

## Send and receive

How you send email and bring replies back.

| Capability | Samva | Amazon SES |
| --- | --- | --- |
| Send API | Typed REST API with an OpenAPI spec | SES API and SMTP. New accounts start in a sandbox that sends only to verified addresses, 200 messages a day, until you request production access. |
| Inbound email | Replies thread to the email they answer, delivered as a signed message.received webhook | Receipt rules hand you the raw MIME in S3 or an SNS notification, in supported regions. You build the parser. |

## Delivery and visibility

How you follow delivery, observe engagement, and protect your sending.

| Capability | Samva | Amazon SES |
| --- | --- | --- |
| Webhooks | Signed Standard Webhooks events, with backoff and up to 8 automatic delivery attempts | Events publish to CloudWatch, Data Firehose, Pinpoint, SNS, or EventBridge through a configuration set. You route them to your app. |
| Opens and clicks | Samva's own open pixel and tracked links, signed message.opened and message.clicked webhooks, and a timeline in the dashboard and API | Open and click events publish through the same event destinations you configure. |
| Deliverability | Generates DKIM and SPF records and checks your DMARC policy; bounces and complaints suppressed automatically | Configuration sets and an account-level suppression list. |

## Integration tools

The SDKs and agent tools you can build with.

| Capability | Samva | Amazon SES |
| --- | --- | --- |
| SDKs | TypeScript SDK with async/await and Effect-native interfaces | AWS SDKs and the AWS CLI |

## Volume and billing

What you can send for free and how extra volume is billed.

| Capability | Samva | Amazon SES |
| --- | --- | --- |
| Free plan | 500 emails a month, up to 100 a day | New AWS customers get up to $200 in Free Tier credits for 6 months, all expiring within 12 months of account creation. |

## Moving from Amazon SES.

Add your domain and publish the DKIM and SPF records Samva generates next to the old provider's. Both can send while you switch.

Swap the send call.

## Amazon SES SDK

```ts
import { SESv2Client, SendEmailCommand } from "@aws-sdk/client-sesv2";

const client = new SESv2Client({ region: "us-east-1" });
await client.send(new SendEmailCommand({
  FromEmailAddress: "receipts@example.com",
  Destination: { ToAddresses: ["ada@example.com"] },
  Content: { Simple: {
    Subject: { Data: "Your receipt" },
    Body: { Html: { Data: "<p>Thanks for your order.</p>" } },
  } },
}));

```

## Samva

```ts
await samva.messages.send({
  from: { email: "orders@example.com" },
  to: [{ email: "ada@example.com" }],
  channel: "email",
  email: {
    subject: "Your receipt",
    html: "<p>Thanks for your order.</p>",
  },
});
```

Map webhooks. Samva sends signed events for sent, delivered, bounced, complained, failed, and received, with received going to the endpoint your domain's receiving route names. Opens and clicks arrive as message.opened and message.clicked, and unsubscribes as contact.unsubscribed.

| Amazon SES event | Samva event |
| --- | --- |
| `Send` | `message.sent` |
| `Delivery` | `message.delivered` |
| `Bounce` | `message.bounced` |
| `Complaint` | `message.complained` |
| `Open` | `message.opened` |
| `Click` | `message.clicked` |
| `Subscription` | `contact.unsubscribed and contact.resubscribed` |

Recreate templates as versioned templates, or send your existing HTML inline while you move.

Keep the old provider's suppression list in your app and filter against it. Samva cannot import it.

Turn on receiving if you want replies back.

What does not move: templates, the suppression list, and message history.

The full walkthrough: [Replace an Amazon SES email stack without rebuilding delivery](https://samva.dev/guides/replace-amazon-ses).

## Questions before you switch.

### Isn't SES cheaper per email?

Yes. À la carte SES outbound is $0.10 per 1,000, and new accounts start on Essentials at $0.16 per 1,000 for the first 10 million emails a month (AWS pricing page, checked Sep 29, 2026). The difference is what you build and run yourself: event handling, inbound parsing, suppression, template workflow, and dashboards.

### Do new SES accounts get the $0.10 rate?

Not by default. AWS says new SES accounts, and account-region pairs with no metered SES activity since June 1, 2025, start on Essentials as of July 21, 2026. You can switch to à la carte.

### Does SES still have a free tier?

New AWS customers can choose a free plan for 6 months with up to $200 in Free Tier credits, and the credits expire within 12 months of account creation. Samva's free plan is 500 emails a month with no end date, up to 100 a day.

### Who parses inbound mail on SES?

You do. SES receipt rules deliver the raw, unmodified MIME to S3 or an SNS notification, in the regions that support receiving. Samva parses inbound mail and threads each reply to the email it answers.

## Related Resources

- [Replace an Amazon SES email stack](https://samva.dev/guides/replace-amazon-ses): A staged cutover from SES without rebuilding delivery.
- [Pricing](https://samva.dev/pricing): Start on 500 emails free, then pay for the volume you send.
- [Email deliverability](https://samva.dev/features/deliverability): Authentication, reputation, and bounce handling for product email.
- [Samva vs Postmark](https://samva.dev/compare/postmark): Compare pricing, inbound email, and webhooks with Postmark.

## Send your first email free.

500 emails a month, no card. When you outgrow it, the bill stays predictable.

[Start sending free](https://samva.dev/signup) or [Talk to the founder](https://samva.dev/contact).

## Sources, verified September 29, 2026

- [Amazon SES pricing](https://aws.amazon.com/ses/pricing/)
- [Request production access (moving out of the SES sandbox)](https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html)
- [Monitor email sending using SES event publishing](https://docs.aws.amazon.com/ses/latest/dg/monitor-using-event-publishing.html)
- [SES email receiving concepts](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-concepts.html)
- [Sending email using the SES API](https://docs.aws.amazon.com/ses/latest/dg/send-email-api.html)
- [AWS SDK for JavaScript v3: SESv2 SendEmailCommand](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sesv2/src/commands/SendEmailCommand.ts)
