Quickstart
Deploy Sendoff into your Cloudflare and AWS accounts with one command, then connect your agent.
bun create sendoff does the whole deployment: it clones Sendoff, creates the database and queue, sets up SES, writes your DNS records, deploys the Worker and asks AWS for production access. It takes about ten minutes, most of it waiting for DNS.
Before you start
You need:
- A Cloudflare account on Workers Paid ($5 a month). Sendoff lives on a subdomain of your domain, like
news.example.com. Your domain’s DNS can be on Cloudflare or anywhere else; see Domains outside Cloudflare. - An AWS account for SES. A new account starts in the SES sandbox; setup asks AWS to move it out.
- An address on that domain to send from, like
hello@example.com. If you’re moving from another provider, keep the same domain, so its sending reputation carries over. - Bun and Git.
- The AWS CLI, logged in (recommended). Setup uses your login to provision SES, and gives the Worker its own send-only key. Without the CLI, it asks you to create an IAM user by hand.
Deploy
Log in to AWS
Any CLI login works: aws login, aws sso login, or a profile. Check it with aws sts get-caller-identity.
Create your Sendoff
bun create sendoffIt clones Sendoff into ./sendoff (add a folder name to use another), installs it and starts setup. Setup asks for a name (your newsletter’s or your brand’s), the sender name and address, an optional reply-to, an optional postal address for the footer, your website, the hostname for Sendoff and an SES region. Then it does the rest. See Setup for every step.
Keep the folder. It holds your instance’s config, and it’s where you ship updates from.
Save your MCP token
Right after the deploy, setup shows an MCP token along with the commands to connect Claude Code, Codex and claude.ai. It’s shown once, so save it in your password manager.
Request production access
At the end, setup shows a description of what you send and asks before submitting it to AWS. Approval usually takes about a day, and AWS may follow up by email. Until then, SES only delivers to addresses you’ve verified, so you can test but not send to your list.
If anything fails, run bun create sendoff again from the same place, or bun run setup inside the folder. Setup skips the steps that are already done and picks up where it stopped.
Connect and write
Connect your agent with the token, then ask it:
Run Sendoff’s doctor.
That runs the preflight checks and shows anything still blocking a send, such as production access or an empty list. Then import your list and ask for a first draft:
Help me draft the first issue. Here are my notes: …
The agent shares a preview link. Open it, ask for changes, and when you’re happy, follow Sending an issue.