[↑] CodeOutbox
Switching guide

Move your newsletter from Buttondown to CodeOutbox

Bring your subscribers over in about ten minutes. People who already opted in stay subscribed, without confirming again. Buttondown exports every subscriber with their type, so CodeOutbox can tell who's still active.

1. Export your subscribers from Buttondown

  1. In Buttondown, open the Subscribers tab.
  2. Click Export to download a CSV.
  3. That's the file to import.

Menus change from time to time. If something looks different, Buttondown's own export guide has the current steps.

2. Create your list

Start at app.codeoutbox.com with your email, or run npx codeoutbox in your site's folder to add a signup form and create the list in one go. Free for up to 100 subscribers, no card.

3. Import the file

In the dashboard

Lists → Import subscribers. Pick the file and choose “Yes, they subscribed with my old tool”.

From your terminal

With an API key from Settings → API keys:

CO_TOKEN=co_live_… npx codeoutbox import newsletter buttondown-subscribers.csv --confirmed
With your coding agent

With the CodeOutbox MCP server installed, ask: “import buttondown-subscribers.csv into my newsletter, they already opted in”.

What comes across

Email addresses and your metadata come across. Subscribers whose type marks them as unsubscribed or never activated are left out. You can use any column in your emails, like {{first_name | "there"}}.

What stays behind

Your archive and sending history stay in Buttondown. CodeOutbox can host a public archive for the issues you send from now on.

Only import people who signed up to hear from you. If you're not sure about part of the list, choose “Email each of them a confirmation link” instead. They'll be added once they confirm.

4. Swap your signup form

Replace the old embed with a form that posts to CodeOutbox. In your site's folder:

npx codeoutbox --id YOUR_FORM_ID

It detects React, Next.js, Vue, Svelte, Astro or plain HTML and writes a styled form component. Your form id is on the dashboard. No website? Every list also has a hosted signup page you can link to.

5. Send from your own domain

Add your domain under Settings → Sending domains and publish the DNS records it shows. Your emails then come from your own address, which helps them reach the inbox. A short first note (“we've moved our newsletter”) helps readers recognize the new sender.

Start free