Email for professionals and teams
2,681
stars
42
commits
TypeScript
primary language
Sep 6, 2026
updated
Mailflare is a self-hosted email inbox for custom domains, built on Cloudflare.

Mailflare runs in your Cloudflare account. Email Routing delivers incoming messages to the app, while Cloudflare's email service handles outgoing messages. Your mail data stays in your own D1 database and attachments are stored in your own R2 bucket.
You can setup Mailflare and receive email for free
A Paid Worker plan ($5/month) is required to send email (and it's recommend to have a smooth experience)
The easiest way to get started is with the Deploy to Cloudflare button above. You will need:
After deployment, open your Mailflare URL and follow the first-run setup. The setup checks your Cloudflare configuration, creates the initial account, and helps you connect your first domain.
See the deployment guide for required permissions, manual deployment, backups, updates, and custom Worker names.
cp .dev.vars.example .dev.vars
npm install
npm run db:migrate:local
npm run dev
Add your Cloudflare credentials to .dev.vars, then open http://localhost:3000. For sample local data, run npm run db:seed while the development server is running.
See LICENSE.
TypeScript
99.7%
Email for professionals and teams
2,681
stars
42
commits
TypeScript
primary language
Sep 6, 2026
updated
Mailflare is a self-hosted email inbox for custom domains, built on Cloudflare.

Mailflare runs in your Cloudflare account. Email Routing delivers incoming messages to the app, while Cloudflare's email service handles outgoing messages. Your mail data stays in your own D1 database and attachments are stored in your own R2 bucket.
You can setup Mailflare and receive email for free
A Paid Worker plan ($5/month) is required to send email (and it's recommend to have a smooth experience)
The easiest way to get started is with the Deploy to Cloudflare button above. You will need:
After deployment, open your Mailflare URL and follow the first-run setup. The setup checks your Cloudflare configuration, creates the initial account, and helps you connect your first domain.
See the deployment guide for required permissions, manual deployment, backups, updates, and custom Worker names.
cp .dev.vars.example .dev.vars
npm install
npm run db:migrate:local
npm run dev
Add your Cloudflare credentials to .dev.vars, then open http://localhost:3000. For sample local data, run npm run db:seed while the development server is running.
See LICENSE.
TypeScript
99.7%