The short answer
- Amazon SES's community migration guide moves 2 partly; 3 things stay behind. What moves
- 2 public accounts of making this switch: 1 switched, 1 gave up. Read them
What Resend and Amazon SES cost
List prices from each vendor's pricing page, as stored in the Stackcut catalog. Each price links its source.
| Plan | Billed monthly | Billed yearly (per month) | What you get |
|---|---|---|---|
| Resend Pro | $20/mo | not shown | 50,000 emails/mo, no daily limit, 10 domains, 5 webhook endpoints; overage $0.90 per 1,000 |
| Resend Scale | $90/mo | not shown | 100,000 emails/mo, 1,000 domains, 10 webhook endpoints; overage $0.90 per 1,000; SSO and dedicated IP add-ons |
| Resend Pro 100k | $35/mo | not shown | 100,000 emails/mo, 10 domains; overage $0.90 per 1,000 |
| Resend Scale 200k | $160/mo | not shown | 200,000 emails/mo, 1,000 domains; overage $0.80 per 1,000 |
- Resend free plan: 3,000 emails/mo, 100 emails/day, 3 domains, 30-day data retention; no pay-as-you-go on Free resend.com
Amazon SES's plans aren't in the Stackcut catalog yet; check Amazon SES's own site.
Moving from Resend to Amazon SES
What Amazon SES's importer carries over, what it leaves behind, and any help it offers switchers.
To Amazon SES
Community guide dev.to · Tools: AWS SAM (CloudFormation stack), Lambda + DynamoDB + API Gateway + Secrets Manager
Moves: Sending domain (partial); Email templates (partial). dev.to
Doesn't move: Sending integration (code); Resend API keys, audiences, and suppression lists (not mentioned; a fresh SES setup rebuilds deliverability state); Resend logs and analytics history (not mentioned; a fresh setup starts analytics history over). dev.to
Watch out for:
- New SES accounts start in sandbox mode, capped at 200 emails per 24 hours and 1 email per second until production access is approved dev.to
- DynamoDB TTL is opportunistic cleanup, not a security boundary; enforce token expiry at verify time dev.to
- Cache Secrets Manager reads on cold start to avoid per-invocation API charges dev.to
From each destination's own migration docs and switching pages, plus community write-ups where no official guide exists, each checked against its page. Confirm terms on the linked page before you rely on an offer.
People who moved from Resend to Amazon SES
2 public accounts of leaving Resend: 1 switched, 1 gave up. Summaries are ours; each links the original, and each was checked against its page before it appeared here.
The author tore out a working Resend magic-link login 11 days before launch and rebuilt it on SES + Lambda five days before launch. Cost projection and free-tier daily caps drove the move; the cutover took one afternoon and the SES stack still runs the site two months on. He advises doing the math before adopting Resend. DEV Community
(older account, December 2023) Developer tried Amazon SES directly after reading that Resend wraps SES, found SES too complex to set up in a day, and went back to Resend. His math: SES only wins on cost above roughly 1,365 users/year for transactional-only email once engineering time is priced in. DEV Community
How to leave Resend
Export first, then cancel. Every step links the vendor's own help page, checked on the date shown.
How to leave Resend
Export first
- Emails (outbound and inbound): Apply filters in the dashboard and click Export, or bulk-export via the API/SDK; downloads of 1,000 items or fewer return immediately, larger exports arrive by email link. Admins can download from Settings > Team > Exports for 7 days (CSV). Export links expire after 7 days and are then marked Expired; only admins can download. resend.com
- Broadcasts: Same dashboard Export flow or API/SDK bulk export (CSV). Same 7-day admin download window. resend.com
- Contacts (audiences): Same dashboard Export flow or API/SDK bulk export (CSV). Same 7-day admin download window. resend.com
- Domains: Same dashboard Export flow or API/SDK bulk export (CSV). Same 7-day admin download window. resend.com
- Logs: Same dashboard Export flow or API/SDK bulk export (CSV). Same 7-day admin download window. resend.com
- API keys: Same dashboard Export flow or API/SDK bulk export (CSV). Same 7-day admin download window. resend.com
What you lose
- All team data is deleted irreversibly when the team is deleted (Resend states this action is not reversible)
- Export download links expire after 7 days; anything not exported before deletion is gone
- No refund of paid subscription fees except where required by law
- Free tier limits and features can be changed or the free tier discontinued without notice
Cancel
- Point your app at the new provider and check that mail arrives before you cancel.
- Billing page → the ⋯ menu next to your plan → Cancel Subscription.
- Refunds
- Paid subscription fees are non-refundable, except where the law requires otherwise.
FAQ
Can I move my Resend data to Amazon SES?
Amazon SES's community guide moves: Sending domain; Email templates. It doesn't move: Sending integration (code); Resend API keys, audiences, and suppression lists (not mentioned; a fresh SES setup rebuilds deliverability state); Resend logs and analytics history (not mentioned; a fresh setup starts analytics history over). dev.to
What do I lose when I leave Resend?
Per Resend's own pages, leaving or downgrading loses: All team data is deleted irreversibly when the team is deleted (Resend states this action is not reversible); Export download links expire after 7 days; anything not exported before deletion is gone; No refund of paid subscription fees except where required by law; Free tier limits and features can be changed or the free tier discontinued without notice. resend.com
Keep reading
Check your own stack
Get your free stack audit
Stackcut finds every software subscription in your inbox and shows what to cancel, what to pay per use, and what AI can replace, with a spec and a cost for each. Your stack audit is free and takes about 2 minutes.
Or ask your agent
Connect the Stackcut MCP server (https://stackcut.io/mcp, no API key) and ask: “We pay for Resend. Should we move to Amazon SES?”
find_alternatives({"vendor": "Resend"})