Show HN: Rebuilding Amazon SES in Rust
I'm Kam, co-founder and CTO of Nitrosend. Email is our lifeblood, so we've been gradually moving our email sending onto bare-metal servers and IPs we control. We wanted to make that move without rewriting the application code already calling Amazon SES. So we built NitroMTA, an open-source SES replacement in Rust. We kept our existing SES v2 sending calls and changed the endpoint and credentials to send through our own engine. We've been running it in production for a few weeks, moving more mail
Read original sourceSource record
Recorded metrics
points · 3 votes
2026-11-11 23:08:58.922Z
cumulative since publication
Research analysis
Project record
Repository: nitrosend/nitromta. Source account: I'm Kam, co-founder and CTO of Nitrosend. Email is our lifeblood, so we've been gradually moving our email sending onto bare-metal servers and IPs we control. We wanted to make that move without rewriting the application code already calling Amazon SES. So we built NitroMTA, an open-source SES replacement in Rust. We kept our existing SES v2 sending calls and changed the endpoint and credentials to send through our own engine. We've been running it in production for a few weeks, moving more mail
Observed adoption & comparisons
Source votes: 3 votes (Nov 11, 2026 UTC; cumulative since publication); previous same-scope observation: 2 (Nov 11, 2026 UTC). These observations do not establish demand growth. Recent records to compare: “Show HN: Lettercamp – open-source static blog framework” (Show HN, Nov 11, 2026); “openai/codex-security” (GitHub Trending, Nov 11, 2026). Shared themes are navigation hints; they have not been verified as the same need or independent corroboration.
Adoption decision
Evaluate it against the tool or manual workflow it would replace. The stored record supports discovery; it does not yet establish reliability, lower operating cost or commercial adoption.
Unverified requirements
Not verified: license permissions, required hardware, installation steps, maintenance status and a representative task with its failure cases.
Next test
Choose one real task and a current alternative. Record the commit, environment, input, output, elapsed time and failure behavior; retain the result before recommending adoption.