Send transactional email, campaigns, and inbound mail from one self-hosted control plane. Keep your data in one SQLite file, choose SES, SMTP, direct MX, or local sandbox, and use a familiar developer-first API.
No reviews yetBe the first to leave a review for sendthen
Maker
📌
Hey Product Hunt 👋
I built sendthen because email APIs have excellent developer experience, but I wanted the control plane—and its data—to live on infrastructure I operate.
sendthen is an MIT-licensed, self-hosted email platform you can run as one container backed by one SQLite file. It covers transactional sending, audiences and broadcasts, inbound mail, visual templates, delivery events, webhooks, tracking, suppressions, and team/API-key management.
The key idea is transport freedom. Your app talks to the same API while you choose how mail leaves: Amazon SES, any SMTP relay, direct-to-MX, or a zero-network sandbox. It also includes a Resend-compatible REST surface plus a TypeScript SDK and CLI.
You can try the hosted version, self-host with Docker, or inspect every line on GitHub.
I’d especially love feedback on:
• Which transport do you use today?
• What would make self-hosting email infrastructure feel trustworthy?
• Where does the API diverge from the developer experience you want?
Thanks for checking it out. I’ll be here throughout launch day to answer questions.
Report
love that everything lives in a single sqlite file, makes backups and migrations painless. the choice of providers (ses, smtp, mx, sandbox) without locking you in is exactly the kind of thoughtful trade-off more tools should make.
Report
honestly the SQLite-everything approach is kind of refreshing, one file for all the email config feels way easier to reason about than juggling some massive postgres setup. switching between ses and a local sandbox from the same api is genuinely useful for testing.
Report
finally tested it on a side project and the single SQLite file setup is genuinely refreshing—no juggling credentials between services. routing outbound through my own MX while still using SES for campaigns just feels right.
Report
the choice to keep everything in a single SQLite file is such a refreshingly opinionated call, love that it doesn't try to abstract that away
Report
Love that everything lives in a single SQLite file, makes backing up and migrating the whole mail setup feel almost too easy. The flexibility between SES, SMTP, and direct MX from one control plane is genuinely thoughtful design.
Report
finally something that doesn't fight me on a self-hosted setup, the single sqlite file for everything is genuinely clever
love that everything lives in a single sqlite file, makes backups and migrations painless. the choice of providers (ses, smtp, mx, sandbox) without locking you in is exactly the kind of thoughtful trade-off more tools should make.
honestly the SQLite-everything approach is kind of refreshing, one file for all the email config feels way easier to reason about than juggling some massive postgres setup. switching between ses and a local sandbox from the same api is genuinely useful for testing.
finally tested it on a side project and the single SQLite file setup is genuinely refreshing—no juggling credentials between services. routing outbound through my own MX while still using SES for campaigns just feels right.
the choice to keep everything in a single SQLite file is such a refreshingly opinionated call, love that it doesn't try to abstract that away
Love that everything lives in a single SQLite file, makes backing up and migrating the whole mail setup feel almost too easy. The flexibility between SES, SMTP, and direct MX from one control plane is genuinely thoughtful design.
finally something that doesn't fight me on a self-hosted setup, the single sqlite file for everything is genuinely clever