Email marketing your agent sets up in one prompt.

Paste a form. No backend. Your lists and campaigns live in your repo.

No credit card required.

$ npx codeoutbox init ✓ form ready → co.app/f/newsletter (paste the <form> — no backend)   $ co send campaigns/launch.md --live ✓ sent 1,204 · 0 bounced · 0 complaints
// how it works

Three moves. All in your editor.

Capture from a plain <form>, write campaigns in Markdown, and let your coding agent run the rest.

<!-- no backend: posts straight to CodeOutbox -->
<form action="https://co.app/f/newsletter" method="POST">
  <input type="email" name="email" required />
  <button>Subscribe</button>
</form>
no backend

Paste a <form>

We handle storage, double opt-in, consent records, and delivery. You ship a form tag.

email-as-code

Lists in your repo

Groups and campaigns are files — codeoutbox.json and Markdown — reviewed in PRs, deployed by CI.

agent-operable

Run it from your agent

An MCP server lets Claude Code create lists, check counts, and send — no dashboard required.

Your agent sets up DKIM.

Authenticate a domain in one command. Inbox-grade defaults, on by default.

double opt-inSPF · DKIM · DMARCone-click unsubscribesuppression
// pricing

Transparent. Free forever for 1,000 subscribers.

Pay by subscribers. No "contact sales." Open source and self-hostable.

1,000 subscribers Free $0/mo
Free
$0
  • 1,000 subscribers
  • ~3k sends / mo
  • shared subdomain
  • CLI · MCP · self-host
popular
Pro
$9 /mo
  • 3,000 subscribers
  • your verified domain
  • branding off
  • fair-use sending
Growth
$19 /mo
  • 10,000 subscribers
  • trusted sending pool
  • everything in Pro
Scale
$49 /mo
  • 25,000 subscribers
  • dedicated DKIM
  • everything in Growth

No credit card required · cancel anytime · or self-host for free.

// faq

Questions, answered.

Do I really not need a backend?

Yes. Your <form> posts straight to CodeOutbox. We store subscribers, handle double opt-in and consent, and send the email. You ship a form tag — nothing to host, nothing to maintain.

Where does my subscriber data live? Can I export it?

It lives in CodeOutbox — or in your own instance if you self-host. Export to CSV or JSON anytime; there's no lock-in. "No backend" means no backend for you, not that we hide your data.

How do you keep emails out of spam?

Double opt-in on by default, SPF/DKIM/DMARC, one-click unsubscribe, automatic bounce and complaint suppression, and graduated sending. To send larger broadcasts you authenticate your own domain — and your coding agent does the DNS setup in one command.

What can my coding agent actually do?

Everything. An MCP server exposes tools to create lists, check counts, preview and send broadcasts, and set up domain auth — all from your editor, no dashboard required. Your lists and campaigns live in your repo as files.

Can I self-host?

Yes. The core is open source and runs from a single container (docker compose up). Hosted is for convenience; self-host is for control. Same features either way.

Is it really free? Do I need a credit card?

Free forever up to 1,000 subscribers — no credit card, no trial clock. Paid plans start at $9/mo only when you outgrow it, billed by subscribers.

// dogfood

Get launch updates

The CodeOutbox newsletter — captured and sent with CodeOutbox itself. Double opt-in, unsubscribe anytime.