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
- In Buttondown, open the Subscribers tab.
- Click Export to download a CSV.
- 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
Lists → Import subscribers. Pick the file and choose “Yes, they subscribed with my old tool”.
With an API key from Settings → API keys:
CO_TOKEN=co_live_… npx codeoutbox import newsletter buttondown-subscribers.csv --confirmedWith 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.
Buttondown is a trademark of its owner. CodeOutbox is not affiliated with, endorsed by or sponsored by Buttondown. The export steps above were checked against Buttondown's help center in October 2026 and may change.