mrkeyoor.com_
Tue 01 Sept 17:42 UTC
Self-Hostedevaluationupdated 31 Aug 2026

mailflare review

Mailflare is a source-available web inbox for custom-domain email that runs inside a user's Cloudflare account. It combines Cloudflare Email Routing, Workers, D1, and R2 so a person or team can receive, organize, and send mail without operating a conventional SMTP and IMAP server.

+44 / 1dstars / 7d
Verdict

Our Mailflare install pulled 982 packages and 1,083 MB, then the build stopped after 12 seconds because Wrangler remote mode required a Cloudflare login. The product is appealing for a Cloudflare-committed team that wants shared domain inboxes without running a traditional mail stack, and the current docs explain the required bindings better than the short README does. Do not treat it as an open-source mail server: accept the source-available license, the $5 sending requirement, the 17 audit findings, and the absence of automated tests before trusting it with business email.

We ran it

Lab card: what happened when we ran mailflareScreenshot of mailflare (mailflare.co)
Install✓ · 30s982 packages · 1083 MB
Build✗ · 12s
Testsn/ano test script
Known vulns170 critical · 11 high · 4 moderate · 2 low (npm audit)
Repo525 files~38,643 lines of source · 39.8 MB · 1 CI workflows

Answers from our run

Does mailflare build from source?

Dependencies installed in 30 seconds (982 packages), and the build failed. We cloned commit d600403 into a clean Debian container with 3 CPUs and no project-specific setup.

Does mailflare have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does mailflare have known vulnerabilities in its dependencies?

npm audit flagged 17 known advisories in the dependency tree at the time of our run.

Who should not use mailflare?

Organizations that require an OSI-approved open-source license or a normal public-fork contribution flow: the license forbids redistribution and publishing modified copies without permission.

What are the alternatives to mailflare?

Stalwart, Docker Mailserver, mailcow. Our Mailflare install pulled 982 packages and 1,083 MB, then the build stopped after 12 seconds because Wrangler remote mode required a Cloudflare login.

Setup2/5Install passed; build required an authenticated Wrangler session
Docs4/5Deployment, backup, update, API, and recovery details are specific
Community3/52,123 stars and active August PRs, but no GitHub release
Maturity2/5No test target and 17 known dependency vulnerabilities

Discussed on

  1. hnShow HN: Mailflare – self-hosted email, custom domain with Cloudflare5 points

Who it’s for

Cloudflare users who want a web inbox for domains already managed in the same account.
Small teams that need shared mailboxes, delegated access, routing rules, and an HTTP sending API.
Operators comfortable treating D1, R2, Workers, queues, and Durable Objects as the mail platform.
Businesses using the code internally within the limits of Mailflare's source-available license.

Who it’s NOT for

Organizations that require an OSI-approved open-source license or a normal public-fork contribution flow: the license forbids redistribution and publishing modified copies without permission.
Users who need documented IMAP or POP access from existing desktop and mobile clients: the README describes Mailflare's web inbox and HTTP API instead.
Anyone who wants vendor-neutral deployment: domains, inbound routing, storage, real-time updates, and outgoing mail are tied to Cloudflare services.
Teams expecting free two-way mail: the README says receiving can be free, while sending requires a $5-per-month Paid Worker plan.
Buyers requiring a green automated test suite and clean dependency audit: the repository has no test script, and our npm audit found 17 known vulnerabilities.
Developers who need a credential-free production build: our 12-second build stopped because Wrangler remote mode required a Cloudflare login.

Setup reality

Our commit d600403 sandbox installed 982 npm packages in 30 seconds and used 1,083 MB on disk. The build failed after 12 seconds when Next.js tried to establish a remote Wrangler proxy session and reported that remote mode requires a login. The project has no tests script, so no tests ran. Npm audit found 17 known vulnerabilities: 11 high, 4 moderate, and 2 low.

Deployment needs a Cloudflare account, a domain managed there, and a separate runtime API token with zone and email-routing permissions. D1 stores message data, R2 stores attachments, and backups need an account ID, database ID, and an export-capable token. Sending mail requires the $5-per-month Paid Worker plan described in the README.

The one-click path provisions several bindings, then /setup creates the first account and database. Updates with migrations use separate commands. Worker names must match in 3 configuration locations, while real-time delivery depends on a Durable Object binding. This is manageable for a Cloudflare operator, but it is not a generic local mail server install.

Four Cloudflare services replace a conventional mail stack

Mailflare runs the inbox as a Cloudflare application. Email Routing delivers inbound messages, D1 stores mail records, R2 holds attachments, and a Durable Object pushes live updates to connected users. The dashboard adds personal and shared mailboxes, delegated access, folders, search, snoozing, automatic replies, contacts, webhooks, audit logs, and backups. For a domain already on Cloudflare, that is an attractive amount of mail infrastructure behind one deployment button.

The design also fixes the hosting choice. Mailflare expects the domain to be a Cloudflare zone and uses a runtime token to create routing and sending resources. Its complete Worker handles inbound email, queues, workflows, and the live-update hub. Moving the app to another edge platform would mean replacing those pieces, not changing a deployment adapter. Buyers should read it as a Cloudflare mail product whose source is visible, rather than a portable Next.js inbox.

Receiving can be free, while sending needs a $5 Worker plan

The README says Mailflare can be set up to receive email for free. Outgoing mail requires Cloudflare's Paid Worker plan, listed at $5 per month. That split is important for a trial: inbound routing and the interface may be cheap to explore, but a working business mailbox usually needs replies. Pricing can change outside the repository, so confirm the current Cloudflare plan before promising a cost to a team.

Sending is available through the dashboard and POST /api/v1/send. The documented API accepts text plus Base64 attachments, with up to 10 files, a 10 MB limit per file, and a 20 MB combined limit in the composer. Attachment metadata stays in D1 while file contents live in R2. Downloads follow mailbox permissions, and shared users receive live events for mailboxes they can access.

What happened when we ran it

Our unprivileged Debian sandbox installed commit d600403 in 30 seconds. Npm added 982 packages and the dependency tree occupied 1,083 MB, which is substantial for a web inbox before any user mail or attachments exist. The checkout itself contained 525 files, roughly 38,643 lines of source, and 39.8 MB. We found 1 CI workflow file, no Dockerfile, and no tests directory.

The build failed with exit code 1 after 12 seconds. next build started Next.js 16.2.6, then tried to establish a remote connection through Wrangler. It stopped with the message that remote mode requires a login and suggested either logging in or using wrangler dev --local. The log establishes an authentication requirement for that build path. It does not show a TypeScript, Next.js, or application-code compilation failure.

No test command or target exists in the package scripts, so our sandbox skipped testing. Npm audit reported 17 known vulnerabilities: 11 high severity, 4 moderate, 2 low, and 0 critical. An open pull request proposes dependency updates for those findings, but it was not part of commit d600403. The published review therefore uses the audit result from our own install, not the proposed branch's claimed outcome.

The source license blocks normal open-source reuse

Mailflare's LICENSE allows review, evaluation, modification, and personal or internal business deployment. It prohibits selling, sublicensing, commercializing, redistributing, publishing modified copies, and offering a similar hosted service without written permission. GitHub consequently reports no standard license identifier. A contributor even opened issue 12 to request permission for a public fork because the usual pull-request flow conflicted with clause 3.

This matters well before procurement. A company can deploy the application internally under the text as written, but a consultant cannot assume they may publish a maintained fork or turn a customized copy into a service. The deployment guide also mentions paid Pro or Team branding keys that activate through Paymug. Anyone planning white-label use, resale, or public redistribution should get written terms from the author first.

Three matching Worker names and several tokens sit behind one-click deploy

The deployment button provisions the Worker bindings, builds the OpenNext package, applies D1 migrations, and deploys the app. Runtime still needs CF_TOKEN with Zone Read plus email-routing and sending permissions. Backup support adds CF_AID, D1_DATABASE_ID, and an export-capable token. Turnstile keys, a Worker name, and optional GitHub update credentials appear in the package's Cloudflare binding declarations.

Renaming the Worker requires the same value in 3 places: the top-level Wrangler name, the self-reference service binding, and CF_EMAIL_WORKER_NAME. The first-run /setup route initializes an empty database but never applies later migrations to an existing one. Updates therefore need the remote migration command before deployment. Those are ordinary Cloudflare tasks for an experienced operator, yet they are more than a click and a domain name.

August activity is strong, while release and test discipline lag

GitHub recorded 2,123 stars, 228 forks, and 6 combined issues and pull requests. The last push was August 31, 2026, on the same day as our measured commit. Current discussion includes onboarding instructions, routing changes, webhook retries, dependency updates, and push notifications. That is active development and user interest. It also means behavior is moving quickly around a mail system that stores sensitive records.

There is no GitHub release marked latest, even though package.json identifies version 0.2.0. More concerning, the repository offers no automated test script for the 38,643-line codebase. Mailflare deserves a trial if the Cloudflare fit is exact and the license works for the organization. A production decision should wait for a repeatable authenticated build, a clean dependency audit, and tests around account permissions, routing, migrations, attachments, and message delivery.

Alternatives

ProjectWhat it isPick it when
Stalwart gh↗An all-in-one mail and collaboration server with SMTP, IMAP, JMAP, and DAV protocols.pick this instead when standard mail protocols and control of the whole server matter more than Cloudflare-native convenience.
Docker MailserverA containerized SMTP and IMAP mail stack with spam, antivirus, and LDAP options.pick this instead when you want a conventional mail server in Docker and can operate its DNS, reputation, and storage.
mailcowA Docker-based groupware and mail suite with an administration interface.pick this instead when a fuller self-managed mail suite is worth the larger server and maintenance burden.

What people are saying

  1. [github-trending] hieunc229/mailflare

Sources

  1. Mailflare repository
  2. Mailflare README
  3. Mailflare deployment guide
  4. Mailflare API and integrations guide
  5. Mailflare source-available license
  6. Contribution permission and audit issue
  7. Measured commit d600403

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →