Resend
Per month
- Pro marketing$80
Up to 10,000 contacts, billed monthly
- SendingIncluded
Unlimited emails to your contacts
Total
$80
$960 a year
Newsletters and announcements for your list, sent from your own Cloudflare and AWS accounts and run from Claude or Codex.
Draft issue 24 from my last three posts.
“Shipping in public” is drafted, 612 words. The preview is ready.
news.example.com
Send me a test.
Sent to hello@example.com. Preflight passed: send it to 6,042 subscribers?
Looks good. Send it.
Issue 24 is going out to 6,042 subscribers.
Connect Sendoff to Claude or Codex and describe the issue you want. Your agent writes and edits it, and Sendoff renders it with React Email into a polished layout, with buttons, callouts, images and dark mode taken care of.
Start issue 24 with a short intro about shipping in public.
Drafted “Shipping in public” with a short intro.
Add a button to read the full post.
Added “Read the full post” under the intro.
Now a callout with the short version.
Done: “Ship small, write it down and reply to everyone.”
And list what’s in the post.
Added two bullets after the callout.
The Sendoff Quarterly
Shipping in public
Three months of building in the open, and what I’d do differently next time.
Read the full post
The short version
Ship small, write it down and reply to everyone.
You’re receiving this because you subscribed to The Sendoff Quarterly. Unsubscribe
Open it on your phone or laptop and see the issue the way subscribers will, before anything goes out.
news.example.com/preview/x7Kp2Q
Shipping in public
Shipping in public
The Sendoff Quarterly <hello@example.com>
to you
09:00
The Sendoff Quarterly
Shipping in public
Three months of building in the open, and what I’d do differently next time.
Read the full post
The short version
Ship small, write it down and reply to everyone.
You’re receiving this because you subscribed to The Sendoff Quarterly. Unsubscribe
Shipping in public ================== Three months of building in the open, and what I’d do differently next time. Read the full post: https://example.com/shipping-in-public The short version Ship small, write it down and reply to everyone. - Why I post unfinished work - The tools I use every week -- You're receiving this because you subscribed to The Sendoff Quarterly. Unsubscribe: https://news.example.com/unsubscribe/5mXq8R
Sendoff runs in your own Cloudflare account and sends through your own Amazon SES, so you pay them directly and nobody else. Pick the service you’re on now and move the sliders to see how the bills compare.
Migrate from
Start from
Resend
Per month
Up to 10,000 contacts, billed monthly
Unlimited emails to your contacts
Total
$80
$960 a year
Sendoff
Per month
Self-hosted, no subscription
Workers Paid, with D1 and Queues included
40,000 emails at $0.10 per 1,000
Total
$9
$108 a year
Sendoff costs $852 less a year.
Estimates, not quotes, checked October 31, 2026. Resend is priced on its marketing email plans (Free, then Pro marketing), which are billed monthly by contact count with unlimited sends, and quoted individually above 150,000 contacts. Sendoff is priced on Cloudflare Workers Paid, whose included usage covers its database and queue at these volumes, and Amazon SES at $0.10 per 1,000 emails, before any AWS free tier. Bounce, complaint and delivery notifications through Amazon SNS add cents at most. A domain costs the same either way. Sources: Resend, Cloudflare, Amazon SES.
Before every send, Sendoff checks your domain, your SES account and your latest test, and won’t go until everything passes.
Preflight
Issue 24 · Shipping in public
Domain verified
DKIM on example.com
Custom MAIL FROM
bounce.example.com
DMARC record
p=none on example.com
Production access
Out of the SES sandbox
Sending quota
50,000 a day
Bounces and complaints
Wired to Sendoff
Test matches the draft
Sent at 08:52
Your agent can tell you how far a send has got, what bounced and who unsubscribed. Bounces and complaints come off the list on their own.
Shipping in public · No. 24
What I learned building Blume · No. 23
Notes on open source · No. 22
A year of building · No. 21
One command clones Sendoff and runs setup. It creates the database, queue and SES identity, writes your DNS records and asks AWS for production access.
bun create sendoff
Setup guideAdd one URL as a connector in claude.ai or Claude Desktop, or with the details setup prints for Claude Code and Codex.
news.example.com/mcp
Connect your agentAsk for a draft, check the preview and send yourself a test. Nothing goes out until you say so.
“Send it.”
How sending worksDeploy to your own Cloudflare and AWS accounts, bring your list with you, and send the next issue from the chat.