Everything else
The deploy guide, what changed lately, the deliverability words nobody explains, how security works when there’s no vendor in the path, and a map of every page.
One click, your account,
about a minute.
The button creates the D1 database, the KV namespaces and the R2 bucket, then builds and deploys. Queues and the analytics datasets are one command it cannot run for you, so we say so. Nothing needs configuring to boot: the instance migrates its own schema, generates its own signing secret and learns its own public URL on the first request. Nothing is sent to us — there is no us in the path.
Press the button and pick your Cloudflare account. The form has no fields on it at all, because there is nothing you have to know yet. D1, KV and R2 are created for you; queues and the analytics datasets need one command afterwards, and the app tells you when it needs it. Your claim code is printed in the deploy log; /setup asks for it.
$ npx mailysend provision✓ queues · analytics datasets$ npx mailysend deploy✓ workers · do · d1 · kv · r2✓ schema migrated on first requestready https://mailysend.<you>.workers.dev ~40–90s
Or clone the repo and run pnpm run deploy:cf with your own wrangler config — it builds both Workers and hands the upload to wrangler. Reviewable, scriptable, CI-friendly. Budget about a minute end to end — most of it DNS propagation, which is out of anyone’s hands.
- Prerequisites
- A Cloudflare account with Workers Paid ($5/mo, required for sending) and a domain you control.
- Updates
npx mailysend upgrade— migrations run in order, with a dry run first.- Rollback
- Worker versions are immutable;
rollbackflips traffic back in about a second. - Leaving
- Export everything to R2 and delete the Worker. Your data was always yours.
smtp.your-domain.com:587 cannot run on Workers — there is no inbound TCP listener — so the optional SMTP relay ships as an OCI container image you run yourself, on Cloudflare Containers, Fly, or any VM. Nothing else here needs it. SMTP relay docs →
Changelog
v0.1.0- · v0.1.0First public release
The API, the dashboard, the four transports, the CLI and the one-click deploy. Every tagged release →
Deliverability glossary
The eight terms that decide whether your email arrives. In plain language, with what to actually do.
- SPF
- A DNS record listing who may send as your domain. One record, no more than ten lookups deep.
- DKIM
- A cryptographic signature proving the message wasn’t altered. Use 2048-bit keys and rotate yearly.
- DMARC
- Tells inboxes what to do when SPF and DKIM disagree. Start at
p=none, read reports, then quarantine. - BIMI
- Your logo in the inbox, once DMARC is enforced. Needs a VMC certificate; nice-to-have, not urgent.
- Hard vs soft bounce
- Hard means the address is dead — never retry, suppress immediately. Soft is temporary and worth retrying.
- Complaint rate
- Spam-button presses over sends. Keep under 0.1%; above 0.3% and providers start blocking you.
- Inbox placement
- The number that matters: delivered and not in spam. Only seed testing and provider signals reveal it.
- Stream separation
- Keep OTPs away from newsletters — different tags, ideally different subdomains, so marketing can’t sink auth.
Guides
Task-shaped, and several of them run the product's own code in the page rather than describing what it would do.
Security, privacy & terms
MailySend is software, not a service, which changes the security story: your mail never touches infrastructure we operate. What we owe you is safe defaults and readable code.
- Data path
- Your Workers, your Durable Objects, your R2, your region. We have no production access, no telemetry on message content.
- Auth
- Dashboard behind Cloudflare Access (SSO, MFA, device posture). API keys are scoped, hashed and revocable.
- Compliance
- Cloudflare’s own certifications cover the infrastructure. As the operator, you’re the data controller — the repo ships a DPA template and sub-processor list.
- GDPR erase
- Deleting a contact cascades through D1, KV suppressions, R2 attachments and the event stream.
- Disclosure
- Report vulnerabilities through the repo’s security policy; fixes ship as a patch release with an advisory.
- Licence & terms
- MIT. Use it commercially, fork it, resell it. No warranty, no support obligation — the honest trade for $0. Terms →
Status
All dependencies operationalYour instance’s uptime is Cloudflare’s uptime — there’s no MailySend service to go down. This page tracks the Cloudflare products MailySend depends on, plus the health of the SDK registries and the docs.
- Workersoperational
- Email Serviceoperational
- Email Routingoperational
- Queues · DO · D1 · R2operational
- Workflowsoperational
- SDK registriesoperational
Every page
No dead ends. If you ever feel lost, this is the map.
Nothing to sign up for. Just deploy it.
One command, about a minute end to end — most of it DNS propagation, which is out of anyone’s hands.