Receipts
Turn purchase receipts into a card with the order total and number at a glance.
The one thing none of the three can do
Gmail, Resend, and Mailchimp are good at their jobs and blind to each other — none of them knows your customer, because none of them runs on your data. Tinbox does. It reads every incoming message and renders the real thing behind it: an order shows the live order, a login shows the code, a billing question surfaces the account, ready to act on. That's why this isn't a cheaper bundle — it's a better inbox. Every card below is the actual component your inbox renders.
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.
Three jobs, one surface
The same owned stack does the inbox (triaged, drafted, waiting for your yes), the transactional sending (receipts and resets from your domain), and the newsletters (turn your notes into this month's campaign, scheduled to active subscribers). One agent works across all three because they're one system, not three tabs — reaching into the store and CRM you already run, everything that sends parked for your one click.
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.
Lists
Turn these release notes into this month's newsletter, schedule it for active subscribers Thursday 9am.
campaign
Drafted: "June product update"
Subject: What shipped in June →
Built from your release notes · 4 sections · 1 CTA
Edit draft →
audience
Segment: active subscribers
1,284 recipients · opened in last 90 days
Manage audience →
campaign · scheduled
Scheduled for Thursday, 9:00am
Throttled, ledger-backed fan-out · open + click tracking on
Approve to send — needs your newsletter:send key.
Send
Did the renewal invoice to ops@acme.com actually go out?
delivery_status
Receipt #1042 → ops@acme.com
delivered · 1 recipient · sent from billing@yourco.com
ledger row led_8f2c · delivered
View in activity →
summary
You get the answer, not a guess
Every send is logged — recipient, from-address, delivered or not — so "did it go out?" has a real answer, pulled straight from the ledger.
Better, not just cheaper
Inbox, sending, and lists share one database on your own Cloudflare account — so a support thread, a receipt, and a campaign are the same system, not three subscriptions stitched together with forwarding rules and CSV exports.
Because you own it, open the repo and add the columns you want, a refund button wired to your own Stripe, the rule for how you actually work. None of the three tools you're replacing lets you reach inside it. This one is yours to reshape.
Add a tool once to the shared, typed manifest and it shows up in the in-app chat, the CLI, and MCP at once — gated by the same scoped keys as every human action. The agent learns to do your jobs across the whole stack, not one tool at a time.
Perfect to start on
Inbound rides Cloudflare Email Routing; outbound goes through Cloudflare's managed sending pool with SPF, DKIM, and DMARC on your zone — the same authenticated path a hosted sender gives you, correct from day one. Click the button from your browser, paste a prompt to your coding agent, or run npx tinbox yourself — three ways in, all landing in your own account. And because it's standard email on infra you control, you can export it, mirror it, or walk with all of it whenever you like.
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 →The model
Three subscriptions recur forever; the price you researched isn't the price you pay by year two. Tinbox is one license, and the AI runs on your keys — no markup on the intelligence, a cheap model for autocomplete and a frontier one where it matters. Storage and compute sit in Cloudflare's free tier for a small team. Not another subscription — the last email tool you'll ever buy.
Set your team size and volume below and compare five years, side by side.
Drag to match your team. Both cards update live.
Before
rented · 3 vendorsAfter
owned · 1 deploySame 5 years: $11,220 rented vs. $249 owned — about 45× less, and you keep it.
Bring your own AI keys. You already pay Anthropic or OpenAI — Tinbox uses your key, so you don't pay an AI markup on top of a subscription. And you pick the model per task: a cheap fast model for autocomplete, a frontier model where it matters. No dumb house model you're stuck with.
Rented prices are conservative 2026 list prices for a small team; Tinbox figures are your estimated Cloudflare usage plus the one-time license. Your mileage varies — see full pricing & the license →
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.
Who runs on it
Same inbox, any size. A side project that just needs to send a password reset, or a store running support, receipts, and newsletters off one deployment — three subscriptions replaced before the project has earned one. There's no plan to outgrow and no migration waiting at the next tier.
Just launched — early users are already running it in production, including partners like . Open source on GitHub; wider access is opening by invitation.
Vibe-coded apps
You built the product over a weekend; it still needs to send password resets, magic links, and receipts. One POST /emails from your own domain — no Resend account, no deliverability project. The coding agent that wrote your app can set it up too.
Small startups
Shared support@ and billing@, transactional sending, and a mailing list — one deployment instead of three subscriptions and three logins. The agent drafts replies and triages threads, so a small team keeps up without hiring for it.
E-commerce stores
Connect your Shopify and every support email shows the live order right in the thread — status, items, tracking, one click from the admin. Run support@, send receipts, run your newsletter, all from one place. Not technical? We'll set it up for you.
Indie makers
Three email bills add up faster than the revenue does. Tinbox runs on your own Cloudflare account — usually ~$0/mo on the free tier — so the side project doesn't carry a SaaS stack before it earns one.
The receipts your agent reads
What makes one system out of three: typed primitives an agent reads natively, which is what lets it deploy and run the whole stack for you. A typed CLI and SDK, an /mcp endpoint, scoped keys on one authorize() gate, exactly-once send across a single receipt or a 4,000-recipient newsletter, and the lists engine that replaces Mailchimp. You get the outcome; it does the wiring.
Agents hold scoped, revocable tokens checked by the same authorize() gate as every human action.
Every deployment exposes /mcp. Point Claude, Cursor, or any client at it.
Turn on the archiver and every message mirrors to an append-only file in a git repo.
FTS5 search across every inbox — from the app, the CLI, or an agent, with the same --json results.
npx tinbox search "invoice overdue" --inbox billing --json
→ 3 threads, 2 unanswered
npx tinbox draft create --thread th_8f2c --file reply.md
→ draft v1 created, awaiting human reviewFrom 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
DON'T TAKE OUR WORD FOR IT.
Click a button and see what your favorite AI says about us.
Inbox, sending, and newsletters in one deploy on your own Cloudflare account — and unlike the three tools it replaces, it knows your customer. It runs on your own account, independent of us, and the code's yours to change. The last email tool you'll ever buy.