EmailFlare wraps Cloudflare Email Sending with a clean REST API, scoped API keys, React Email templates, domain management, and a React admin UI — deploy as a Docker container or to Cloudflare Workers.
Send an email with a single HTTP request. Reference a stored template, pass variables, and EmailFlare handles rendering, delivery, and logging.
eflive_ for live sends, eftest_ to route through SMTP instead.
templateSlug / templateId with variables, or send raw html / text directly. Optional fromName and replyTo fields.
"to" accepts a single address or an array of up to 50. Duplicates are deduplicated automatically.
Idempotency-Key header to prevent duplicate sends on network retries — cached result returned on repeat.
X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset included.
Cloudflare Email Sending is powerful infrastructure. EmailFlare gives it the API layer, UI, and tooling that makes it ready for production teams.
Generate per-domain or multi-domain API keys from the dashboard. Your Cloudflare API token never leaves the server — application code only ever sees an EmailFlare key.
Store reusable HTML templates with {{variable}} interpolation, plain-text versions, and named React Email layouts. Send by template ID — not inline HTML strings.
Every send is logged — recipient, sender, template used, API key, Cloudflare message ID, status, and error detail. Debug delivery without guessing which email was sent when.
Provision Cloudflare sending subdomains, inspect DKIM and return-path DNS records, and verify domain status — all from the admin dashboard instead of juggling API calls.
Per-key rate limiting is enforced at the API middleware layer. Rogue callers can't flood your Cloudflare quota. Limits and reset times are returned on every response.
Backend, admin UI, and embedded SQLite storage are bundled in one Docker image. No Postgres, no Redis, no separate services to run. Mount one volume and deploy.
Cloudflare Email Sending is solid infrastructure — but a low-level API. EmailFlare is the application layer on top.
POST /v1/send — eflive_ or eftest_ prefixX-RateLimit-* headersEmailFlare ships with the full stack of tools for reliable transactional email — not just a thin delivery wrapper.
Add sending domains, provision Cloudflare subdomains, view DKIM and return-path DNS records, and track verification status — no CLI required.
Admin UICreate keys with global, per-domain, or multi scope. SHA-256 hashed at rest. Only the prefix is shown after creation — the full key is never stored.
Store HTML templates with {{var}} interpolation, optional plain-text fallbacks, and an optional named layout. Send by template ID — skip the inline HTML.
50 production-ready React Email layouts ship out of the box — from Welcome and Magic Link to Invoice, Billing Receipt, Support Ticket Reply, and Incident Update. Switch between 5 built-in color themes per send.
React EmailEvery delivery is logged with recipient, sender, template, API key, Cloudflare message ID, status, and error detail. Dashboard stats give you a live summary.
ObservabilityPer API-key rate limiting enforced at the middleware layer. Standard X-RateLimit-* response headers on every send request — no extra config.
Test email sends and preview rendered templates right from the admin UI before they hit a real recipient. Catch rendering issues without burning send quota.
Developer UXPowered by mesahub-core — embedded SQLite runs inside the container, no external database. Mount a volume at /data and persistence is handled.
Ships with a root railway.json for GitHub-connected Railway deploys, and a published image at ghcr.io/0xdps/emailflare:latest for image-based deploys.
Create a test API key (eftest_) and all sends route through SMTP — no Cloudflare credentials required. Set ENABLE_TEST_MODE=true to start the bundled Mailpit catcher and access it at /mailpit/, secured with HTTP Basic Auth (defaults to root / ADMIN_TOKEN).
Every layout is a React Email component with documented variables. Use them as-is or as a starting point for your own templates. Switch between built-in color themes per send — no CSS edits needed.
Docker for full control on any server. Cloudflare Workers for zero-ops edge hosting. Both ship in the same repo — pick what fits your stack.
EmailFlare is intentionally simple to operate. No orchestration overhead, no extra services, no surprise dependencies.
/data. No external database to provision or back up separately. ENABLE_TEST_MODE=true — zero overhead in a standard production deploy. MESAHUB_URL with an external mesahub instance if you ever need to split storage out of the app container. CREATE TABLE IF NOT EXISTS on first boot. No migration framework, no manual schema setup, no CLI commands to run. EmailFlare is fully open source. Read the code, contribute, file issues, or fork it for your own needs — no strings attached.