Flowmails vs EmailFlare
Open-source Cloudflare Workers email routing — forwards mail to a webhook. This page is a side-by-side on the parts that matter when you're considering a switch — data residency, pricing, and the parts of each stack that show up in a real migration.
At a glance
Three sentence compare.
Pricing shape
EmailFlare itself is free / open source — you only pay Cloudflare's free tier (Workers + Email Routing). Flowmails' Base plan is also $0 forever with the same Cloudflare free tier underneath; Pro adds the dashboard, AI, and route tables for $9.9 / month.
Setup shape
EmailFlare is a single Worker you deploy to your Cloudflare account and point at a webhook URL. Flowmails provisions the Worker, D1, and R2, then ships a dashboard + REST surface on top — no webhook URL to wire, just the dashboard.
Best fit
EmailFlare: developers who only need to forward inbound mail to a single endpoint and want to write the rest in their own Worker. Flowmails: teams that need an inbox, an API, webhooks, and a UI without writing all the storage code themselves.
Feature matrix
EmailFlare vs Flowmails, line by line.
| Feature | EmailFlare | Flowmails |
|---|---|---|
| Data residency | EmailFlare: no storage, forwards to your endpoint | Your D1 in your Cloudflare account |
| Inbound routing | Yes (catch-all + per-address) | Yes (route tables, literal matchers) |
| Inbox storage | No (your code receives the raw MIME) | Yes — D1 rows per message |
| REST API to read / send | No | Yes |
| Outbound send via Email Services | No | Yes |
| Dashboard UI | No | Yes |
| Webhooks | Inbound: yes (raw MIME POST) | Inbound + outbound: structured JSON events |
| Per-email pricing | No (Cloudflare free tier only) | No (Cloudflare free tier on Base) |
Integration parity
SDK and runtime compatibility.
EmailFlare exposes the inbound email as a POST to your webhook URL with the raw MIME body. Flowmails exposes the same Cloudflare primitives plus a typed REST API (`GET /api/email/list`, `POST /api/email/send`) — your Worker talks REST instead of parsing raw RFC 822.
Migrating
How to switch from EmailFlare to Flowmails.
Inventory what your webhook handler does today
EmailFlare's webhook hands your Worker the raw MIME body. If your handler currently parses RFC 822, stores parsed fields in your own database, and exposes a small API on top, Flowmails replaces all three layers with a managed one — your worker code collapses to a few REST calls.
Provision Flowmails on the same zone
Connect your Cloudflare account to Flowmails and pick the same zone EmailFlare was deployed on. Flowmails takes over the catch-all rule that EmailFlare wrote; your old Worker can stay deployed (unused) until you've smoke-tested Flowmails.
Swap your worker code for Flowmails REST calls
Replace the raw-MIME parsing in your Worker with `fm.messages.list()` / `fm.messages.get()` and `fm.send()` from the Flowmails SDK. The Cloudflare primitives (Email Routing, Email Services, D1, R2) are the same ones EmailFlare used — Flowmails just adds the application layer on top.
Other comparisons