Introduction
sesameSend is an open-source email API you host yourself, on your own Amazon SES account and your own Supabase project.
sesameSend speaks the same HTTP API as the Resend SDKs. You point an SDK at your own deployment by changing one base URL. Mail goes out through your SES account at AWS rates, and the data stays in your Supabase project.
It does not run an SMTP server. Everything goes through the HTTP API.
Quickstart
Send your first email with the Node, Python or Go SDK.
Local development
Run the API on your laptop.
Set up AWS
One script creates the SES, SNS, SQS and S3 pieces.
Migrate from Resend
Copy contacts, topics, segments, suppressions and templates.
Webhooks
Signed event delivery with retries and replay.
API Reference
Every route, with request fields and examples.
What you get
- Emails: send, batch, schedule, cancel, attachments, tags, idempotency keys.
- Domains with DKIM and SPF records, open and click tracking.
- Contacts, segments, topics and contact properties; broadcasts with unsubscribe handling.
- Templates with versions and variables; automations and custom events.
- Webhooks with signing secrets, retries and replay.
- Receiving and inboxes: inbound mail, threads, replies, forwards, drafts.
- API keys with permissions, suppressions, per-team rate limits and send quotas.
What you run
| Piece | Used for |
|---|---|
| Next.js app | The API and the dashboard |
| Supabase Postgres | All data |
| Amazon SES | Sending and receiving |
| SNS and SQS | Delivery, bounce, open and click events |
| S3 | Attachments and inbound mail |
Known limits
- Sending works in
us-east-1only. - A route existing is not proof of identical behavior. The repository's PARITY.md lists, per route, whether it has returned a 2xx to a real request. Four routes have not yet: the three domain claim routes and
POST /emails/batch.