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, and Enterprise is $39.9 / month.
Setup shape
EmailFlare is a single Worker you deploy to your Cloudflare account and point at a webhook URL. Flowmails connects your domain provider over OAuth and provisions the shared mail worker, the storage and the route table, 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 | Flowmails' own storage, scoped by domain id |
| Inbound routing | Yes (catch-all + per-address) | Yes (route tables — an exact local-part allow-list) |
| Inbox storage | No (your code receives the raw MIME) | Yes — a stored row 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 a typed REST API — your code talks REST instead of parsing raw RFC 822, and the platform parses the MIME for you.
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
Sign in to your provider over OAuth 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 provider primitives (Email Routing, Email Sending) are the same ones EmailFlare used — Flowmails just adds the application layer on top.
Other comparisons