Move your newsletter from Substack to CodeOutbox
Bring your subscribers over in about ten minutes. People who already opted in stay subscribed, without confirming again. Substack lets you export your mailing list as a CSV from the subscriber dashboard.
1. Export your subscribers from Substack
- In your Substack dashboard, open Subscribers.
- Click Export and export the entire list as a CSV, with all columns.
- Download the file. That's the one to import.
Menus change from time to time. If something looks different, Substack'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 substack-subscribers.csv --confirmedWith the CodeOutbox MCP server installed, ask: “import substack-subscribers.csv into my newsletter, they already opted in”.
What comes across
Email addresses come across. Activity and subscription columns are ignored. You can use any column in your emails, like {{first_name | "there"}}.
What stays behind
Your posts stay on Substack, and so do paid subscriptions: CodeOutbox doesn't handle payments. If you have paying subscribers, keep their billing where it is and tell them what's changing before you move their email.
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.
Substack is a trademark of its owner. CodeOutbox is not affiliated with, endorsed by or sponsored by Substack. The export steps above were checked against Substack's help center in October 2026 and may change.