Designed to be boring to operate
Serverless from end to end. SES publishes events straight into your Lambda, a cron runs sequences, Postgres holds the state. There is no process to keep alive.
Nothing to run
One Lambda serves the API, the MCP server and the event handlers. It scales to zero and back without you noticing.
Update with one command
git pull && npx openses deploy. Migrations run as part of the deploy and are backwards compatible across one minor version.
No keys at all
The Lambda's IAM role carries the SES permissions. Connect other AWS accounts with a role or keys if you need to, but your own needs neither.
Your Postgres
One DATABASE_URL. Keep bodies or metadata only, set your own retention, back it up like any database you already run.
What the deploy creates
All of it is defined in one sst.config.ts you can read. Remove it with one command and nothing is left behind except your SES identities, which were yours before.
- Node 20+ and AWS credentials with permission to create the stack, once
- A Postgres connection string
- A domain if you want one; the CloudFront URL works without
Any Postgres, one URL
No VPC, no security groups, no pooler to set up. Anything with a public TLS endpoint works from the Lambda as is. OpenSES uses Neon's HTTPS driver when it sees a Neon URL and a plain Postgres connection otherwise.
Host the UI on AWS or on Cloudflare
The dashboard is a static build. By default it goes to S3 and CloudFront with the API. If you would rather have a free Cloudflare Worker with a one-click custom domain, point it at your API and run wrangler deploy. OpenSES Cloud runs this way.
{
"name": "openses-dashboard",
"assets": { "directory": "../../apps/web/dist" },
"vars": { "API_URL": "https://api.acme.com" },
"routes": [{ "pattern": "mail.acme.com", "custom_domain": true }]
}Nothing when idle, pennies when busy
A team sending a few hundred emails a day stays inside the AWS free tiers. The only bill that grows with volume is Amazon SES, at $0.10 per thousand.
| Service | Free tier | Typical monthly |
|---|---|---|
| Lambda | 1M requests + 400k GB-s free | $0 – $1 |
| CloudFront, S3 | 1 TB and 10M requests free | $0 |
| SNS → Lambda, cron | Free | $0 |
| Postgres | Neon free tier up to 0.5 GB | $0 – $19 |
| Amazon SES | $0.10 per 1,000 emails | your sending |
Prefer not to run it?
OpenSES Cloud is the same code, operated by us, still on your AWS account. Fourteen days free, no card.