nmailx

Outbound email for statically hosted sites. Drop a small JS snippet into a contact/quote form on any static site, and nmailx turns submissions into real emails via AWS SES - with a server-rendered admin dashboard to manage domains, templates, users, rate limits, and send logs.

View on GitHub Read the docs (Wiki) Quick start (README)

Why nmailx

How it works

Static site (GitHub Pages, etc.) | POST /send (Origin header identifies the domain) v API Gateway (HTTP API) |-- /send -> SendApiFunction (public, narrow IAM, never touches Users/SES identities) `-- /admin/* -> AdminApiFunction (cookie-authenticated dashboard, never sends email) | v 5 DynamoDB tables (domains, users, templates, rate-limits, send-logs) SES (send + domain identity verification)

Quick start

git clone [email protected]:napalm255/nmailx.git
cd nmailx
make venv           # creates .venv/, installs requirements-dev.txt

export JWT_SIGNING_SECRET=$(openssl rand -hex 32)
export TURNSTILE_SECRET_KEY=<from the Cloudflare Turnstile dashboard>

make deploy-guided   # first time only - sam build, then sam deploy --guided

Full walkthrough - creating your first admin user, verifying a sending domain with SES, adding DKIM records, creating a template, and dropping the contact-form snippet into your static site - is in the README and the GitHub Wiki.

Learn more