Inboxes
Shared and personal addresses, and every message renders the live thing behind it — the order, the account, the login code.
Annotated Dispatch
Inboxes, a sending API, newsletters, and outreach — the whole stack, on your own Cloudflare account, in one deploy.
Route · capture · act
Turn email into business outcomes.

The whole stack
Shared and personal addresses, and every message renders the live thing behind it — the order, the account, the login code.
POST /emails from your own domain on day one — receipts, password resets, and magic links that land.
Your list in your own database — segment it, send it throttled, track every open and click.
Prospects sourced, drafts written, every send queued for your yes.
One record per person across every inbox, campaign, and outreach touch — no CRM to sync.
Triage, drafts, and follow-ups run in the background — quick assist to full autopilot, always under your eye.
What rented email can't do
A customer asks “where's my order?” — and the thread shows the live order: status, tracking, one click from your admin. Every message renders as the real thing behind it, ready to act on. Wire one Skill to your store and every card below turns on.
Turn purchase receipts into a card with the order total and number at a glance.
Spot tracking emails and add a track-package button with the carrier and number.
Pull the login code to the top of the email, ready to copy in one tap.
Catch password-reset emails and put the reset button front and center.
Surface a one-click unsubscribe button so leaving a list takes a single tap.
Detect meeting invitations and offer an add-to-calendar card with the time.
It runs itself
Triaged, the live context attached, the routine replies drafted and waiting for your yes. An agent works the inbox the way you would — reading, drafting, running your campaigns — on the store, CRM, and tools you already run, because the keys are yours to lend.
Chat or schedule. Pull context on a lead, draft the reply, turn your notes into this month's campaign. Or let Autopilot wake on a cadence and work the routine, leaving anything that sends in your Review queue for your one click.
You keep the send button. Every agent send waits in your Review queue — everything on your decision, to approve, edit, or deny with one click. The line is drawn in the code, not a setting, so it holds. And every send is logged in Activity, filterable by who sent it — you, an agent, the API, or an automation — so you can audit the whole trail. See how the agent works your inbox →
Inbox
What's going on with Acme?
email_list · 3 threads
Recent threads from @acme.com
Re: Q3 renewal — 2 days ago · unanswered
Invoice #1042 overdue — 5 days ago
Onboarding follow-up — 2 weeks ago
Open in inbox →
summary
Where the relationship stands
3 open threads with Dana and Raj. The renewal is waiting on your reply; an invoice is overdue. Last inbound was a nudge on pricing.
View thread →
draft
Drafted reply to the renewal thread
Hi Dana — thanks for the patience. Confirming the Q3 renewal at the agreed terms; I'll have the invoice corrected today and sent over by EOD.
Open thread to review & send — a human sends it.
It's yours
Mail, contacts, archive, credentials — all of it lives in your own Cloudflare account, one place you control. No third vendor with a view of your customers.
Open source you can audit and change. Export the database, pull the raw attachments, mirror every message to a git repo — and take all of it with you whenever you like.
Most tools stop at webhooks; here the stack itself is yours to reshape. Point your coding agent at the source — add the column, the button wired to your Stripe, the rule for how you actually work.
One deploy
Inbound rides Cloudflare Email Routing; outbound goes through its managed sending pool, authenticated on your domain. No mail server to run, no deliverability project — enterprise-grade infrastructure you didn't have to build.
Pick how you get there: click Deploy to Cloudflare from your browser, run npx tinbox to scaffold the code yourself, or hand it to your coding agent and approve as it goes. All three land in the same place: your whole stack, live on your own domain.
No terminal required
The Deploy to Cloudflare button clones the project into your GitHub, auto-provisions everything it needs, and deploys it to your account, all from the Cloudflare dashboard. The in-app setup then walks you through attaching your domain and turning on mail.
opens the Cloudflare dashboard
npx tinbox opens an interactive prompt: pick Init and it scaffolds your own deployment.
npx tinboxpnpm deploy:tenant yourdomain.com provisions everything inside your Cloudflare account.
pnpm deploy:tenant yourdomain.comMX points at Cloudflare Email Routing; outbound goes through Email Sending with SPF, DKIM, and DMARC on your zone.
✓ hello@yourdomain.com is liveOr hand it to your agent
Copy the prompt, paste it into Claude Code, Cursor, or any agent with shell access.
Set up Tinbox on my Cloudflare account.
Run `npx tinbox` and choose Init,
then deploy it and wire up Email Routing
+ DNS (SPF/DKIM/DMARC).One domain, one deployment, start to finish. See the full architecture →
Not technical? We'll set it up for you.
Buy a license and we'll help you get started. Want the whole thing handled — domain, DNS, Mailchimp migration? Done-for-you setup starts at $300. For deeper customization or ongoing agent supervision, we work by the hour.
Tell us what you need →Will it actually land?
The first question about self-hosted email is always the same: will it reach the inbox? You're not warming an IP on a VPS. Your mail rides the same authenticated path the big providers use, on Cloudflare's network.
Outbound goes through Cloudflare's managed sending pool — no IP to warm, no mail server to babysit. Need to isolate reputation? Route transactional, lists, and outreach through separate providers on your own keys.
The deploy adds the records to your zone and aligns them for you — the authentication mailbox providers check before they trust a message. Right from day one.
Tinbox verifies your records are present and aligned, and flags anything missing before you send — from the app or the CLI. You see the same green checks the receiving side does. Run it on any domain in seconds, no deploy required.
The cost
One license instead of a stack of subscriptions. Cloudflare's free tier covers a small team, and the AI runs on your own keys — no markup on the intelligence. Pay for the stack once and keep it.
Deploy free
$0Self-host, forever
Lifetime license
$149 foundingOne-time, not a subscription
Not a hosted service — there's no Tinbox server in the path. It's ownership of the code, not a seat we rent you.
Lifetime doesn't depend on us.
The license includes the full readable source, and it runs on your account with no Tinbox server in the path — so it keeps sending on its own, and the code's always yours to change.
From the blog

Here's a pattern you've probably lived through. You start a project. You wire up Resend for transactional email because the DX is genuinely great. You add Mailchimp (or Loops, or Customer.io) for the newsletter. And your team reads support mail in Gmail, because where else would it go?

DKIM (DomainKeys Identified Mail) lets a receiver confirm that mail claiming to be from your domain was signed by someone holding your private key, and that the signed parts were not altered in transit. It is half of what DMARC needs to pass (SPF being the other half), and on a new sending domain it is non-negotiable: Gmail and Yahoo bulk sender rules treat missing DKIM as a reason to throttle or reject. It is one box on the Gmail and Yahoo bulk sender checklist you have to clear before a first campaign.

Email to task automation is the practice of reading each inbound message, deciding whether it implies an action, extracting the fields that action needs, and creating the task (or firing the webhook) without a human retyping anything. The mail is structured data wearing a text costume. The job is to undress it once, reliably, and route it.
Questions
Inboxes, sending, and newsletters — one worker on your own Cloudflare account. Free forever; $149 to fund the founding cohort.