self-hosted transactional email

Email that is deliverable.

An open-source, Resend-compatible email platform you run yourself. Accounts for your team, Amazon SES or any SMTP behind it, DKIM, tracking, broadcasts — one container, zero vendors.

docker compose up -d · MIT licensed · your data stays yours

delivery trace — live
$ sendthen trace em_4kq0w2xr
09:31:04.012queuedaccepted via POST /api/v1/emails
09:31:04.019signingDKIM-Signature: v=1; a=rsa-sha256; d=yourdomain.com; s=stmail
09:31:04.031handshakeMX gmail-smtp-in.l.google.com:25 → 220 ready
09:31:04.214sent250 2.0.0 OK · message-id=<em_4kq0@yourdomain.com>
09:31:04.220deliveredrecipient inbox confirmed
09:31:04.226webhookPOST /hooks/email → 200 · webhook-signature: v1,oTn3…
transports
4
transports
builder blocks
12
builder blocks
API scopes
8
API scopes
webhook events
9
webhook events

Your first email is one POST away.

POST /api/v1/emails
import { SendThen } from 'sendthen';

const st = new SendThen('st_xxxxxxxx');

await st.emails.send({
  from: 'you <hello@yourdomain.com>',
  to: 'user@example.com',
  subject: 'Welcome aboard',
  html: '<strong>It just sends.</strong>',
});

Every message, routed & delivered.

Bring your own pipes

Amazon SES, any SMTP relay, direct-to-MX, or a zero-network sandbox — per team, switchable in Settings. SES runs on signed HTTP, no SDK.

Tuned for the inbox

Verified sending domains with one-click DNS checks, 2048-bit DKIM per domain, automatic bounce & complaint suppression via SES feedback.

Opens, clicks, webhooks

Signed tracking pixel and link redirects, svix-compatible HMAC webhooks with up to 5 delivery attempts and backoff — nine event types, delivered and logged.

Broadcasts & templates

Audiences, per-contact {{variables}}, RFC 8058 one-click unsubscribe, reusable templates, batch and scheduled sends — the marketing side, self-hosted too.

Inbound too

Receive mail on your domains via MX, SES, or HTTP ingest. Read parsed messages in the dashboard and forward them anywhere.

A no-code studio

A visual template builder with 12 blocks and starter presets. Designs stay re-editable and compile to bulletproof table HTML.

Everything in the box.

  • teams & invites
  • scoped API keys
  • batch sending
  • scheduled sends
  • idempotency keys
  • attachments
  • templates + variables
  • broadcasts + one-click unsubscribe
  • suppression list
  • SES / SMTP / direct / sandbox
  • open & click tracking
  • svix-compatible webhooks
  • inbound email + forwarding
  • analytics
  • one SQLite file

Simple pricing.

Hosted plans that stay cheaper than the incumbents — or self-host and pay nothing, forever.

Free

$0
  • 100 emails / day
  • 3,000 / month
  • every feature included

Pro

$10/mo
  • 50,000 emails / month
  • no daily cap
  • $0.50 per extra 1,000

Self-hosted

free
  • unlimited everything
  • your server, your data
  • MIT licensed

Self-host in a minute.

quickstart.sh3 lines
git clone https://github.com/emreisik95/sendthen && cd sendthen
docker compose up -d
# open http://localhost:3000 → create the admin account

One container, one SQLite file — back it up with a copy, move it with a scp.

Own your email pipeline tonight.

docker run, set a password, add your domain. Everything on this page runs on your box.