hieunc229/mailflare

▲ 242 stars today★ 4,367⑂ 585

Email for professionals and teams

About hieunc229/mailflare

hieunc229/mailflare is an open-source project on GitHub, mainly written in TypeScript. Email for professionals and teams It currently holds 4,367 stars and 585 forks with 5 open issues, and was last pushed on 2026-10-03 (repository created 2026-05-26).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #29 with 242 new stars today.

GitHub Repository Details

Repository hieunc229/mailflare · default branch main · size 68635 KB · watchers 6 · source: GitHub REST API and repository README

README

https://github.com/hieunc229/mailflare/blob/HEAD/Mailflare

Mailflare

Mailflare is a self-hosted email inbox for custom domains, built on Cloudflare. Supports Resend, or AWS SES

Deploy to Cloudflare

Screenshots

| Inbox
Inbox | Manage domains
Manage domains | Manage inboxes
Manage inboxes | | --- | --- | --- |

Featured sponsors

https://github.com/hieunc229/mailflare/blob/HEAD/Sequenzy https://github.com/hieunc229/mailflare/blob/HEAD/Drivemug

Want to support the mailflare? Start sponsoring

What you can do

How it works

Mailflare runs in your Cloudflare account. By default, Cloudflare Email Routing delivers incoming mail to the app, and Cloudflare's email service sends outgoing mail. Each domain can also receive or send through Resend or Amazon SES. Cloudflare still manages the DNS.

Your mail stays in your own D1 database, and attachments stay in your own R2 bucket, whichever provider you use. See Sending and receiving providers.

Cost

You can set up Mailflare, receive mail, and send mail for free. Receiving with Cloudflare Email Routing is free. For sending, use the free tier of Resend or Amazon SES. Cloudflare's own email sending needs a paid Worker plan.

| Send with | Free tier | After that | | --- | --- | --- | | Resend | 3,000 emails a month (100 a day), 3 domains | From $20/month for 50,000 emails | | Amazon SES | $200 AWS credit for new accounts (about 2 million emails). The free plan lasts 6 months and credits expire after 12. | $0.10 per 1,000 emails | | Cloudflare Email Sending | None | Needs a Paid Worker plan ($5/month) |

Receiving costs:

New SES accounts start in a sandbox that only delivers to verified addresses. Request production access in the AWS console to lift this.

You choose the provider per domain and can switch anytime (see Sending and receiving providers). Prices change, so check Resend, Amazon SES, and Cloudflare first.

Deploy

1. Deploy the app. Click Deploy to Cloudflare. Keep the app name mailflare. Other Worker names will break the app. 2. Finish setup. Open the deployed app and follow /setup to check the install and create your admin account. 3. Connect a domain. Add a domain from the same Cloudflare account and choose which service receives its mail. Mailflare sets up Email Routing, or guides you through Resend or Amazon SES. Then create your first mailbox. Add Resend or AWS credentials on the domain page when you need them.

⚠️ CF_TOKEN is required during deployment. Create a scoped Cloudflare API token with these permissions for the domains you want to connect:

Deploy with an AI coding agent

Paste the prompt below into an agent with terminal access. Give it your Cloudflare account ID and two separate scoped API tokens through the agent's secret input. Never put them in a public chat, repository, or committed file.

Install Mailflare from https://github.com/hieunc229/mailflare in my Cloudflare account.
Ask me for my Cloudflare account ID, a scoped deployment API token, and a separate
runtime CF_TOKEN through a secret input. Never print, commit, or place either token
in a command argument or a tracked file. Use the deployment token only for Wrangler
authentication (CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID).

Read README.md, docs/deployment.md, and wrangler.jsonc first. Keep the Worker name exactly mailflare. In the selected account, create or reuse the D1 database mailflare, R2 bucket mailflare-raw, and Queues mailflare-inbound, mailflare-outbound, and mailflare-agent. Set the D1 database_id in the local Wrangler config without committing that account-specific ID. Install dependencies, run npm run deploy, and set the runtime CF_TOKEN as a Worker secret. Do not run remote D1 migrations manually; the /setup flow initializes the database.

Give me the deployed URL and any remaining Cloudflare account actions. I will open /setup, create the first admin account, and connect my domain there.

See the deployment guide for permissions, manual deployment, backups, and updates.

Self-host with Docker

Mailflare also runs as one container on any server. It uses SQLite and local files instead of D1 and R2.

cp .env.docker.example .env.docker
docker compose up -d --build

See docs/self-hosting.md.

Local development

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. To load sample data, run npm run db:seed while the dev server is running.

The Cloudflare app uses vinext and the Cloudflare Vite plugin, with local D1, R2, Queues, and Durable Objects. Remote bindings are off by default. To use Workers AI locally, log in with Wrangler, set CLOUDFLARE_ACCOUNT_ID, and run CLOUDFLARE_REMOTE_BINDINGS=true npm run dev.

The Node/Docker runtime still uses Next.js with build:node, start:node, and dev:node.

Documentation

License

See LICENSE.

GitHub Stars & Activity

4,367Stars
585Forks
5Open issues
TypeScriptLanguage

GitHub Popularity

GitHub stars4,367
Forks585
Open issues5
Primary languageTypeScript
LicenseAGPL-3.0
Stars gained today242
Created2026-05-26
Last pushed2026-10-03

Trending History

Daily boardrank #29 · ▲ 242 stars

Related GitHub Projects

1

anthropics / claude-code

TypeScript★ 149,409⑂ 25,484▲ 336 stars
→
2

iptv-org / iptv

TypeScript★ 140,319⑂ 8,191▲ 106 stars
→
3

garrytan / gstack

TypeScript★ 135,116⑂ 20,089▲ 121 stars
→
4

earendil-works / pi

TypeScript★ 112,417⑂ 14,255▲ 400 stars
→
5

thedotmack / claude-mem

TypeScript★ 96,057⑂ 8,482▲ 627 stars
→
6

OpenCut-app / OpenCut

TypeScript★ 92,053⑂ 9,078▲ 512 stars
→
7

heygen-com / hyperframes

TypeScript★ 56,704⑂ 5,087▲ 410 stars
→
8

mksglu / context-mode

TypeScript★ 25,380⑂ 1,815▲ 189 stars
→

More Trending Repositories