Migrating from Substack

Migrate from Substack and import your content to Ghost with this guide

We can do this migration for you, for free!

Save time and let the Ghost team do all the work on your behalf; no coding, no configuration, no worries. This migration is included with any Ghost(Pro) Basic Annual plan or higher.

Additionally, we can remove the 10% Substack fee from your existing subscriptions for you (this is not included in the guide below) so you can keep all your revenue 👉

Exporting your subscribers

To get started, export your current Total Email List in CSV format. This exports your entire Subscriber list from Substack:

substack export

If you're also migrating paid subscribers, you'll need to export the Stripe ID's of your customers by exporting the Subscribers list, which downloads a separate CSV with this information included.

Now you'll have all of the the email subscriber and customer data required to migrate from Substack to Ghost.

Import subscribers to Ghost

We recommend preparing the data in your CSV using our guide on importing members in Ghost. Alternatively, we can do this work for you with any Ghost(Pro) Basic Annual plan.

Once you're happy that you subscriber data is complete, under the Ghost Admin members settings, select the import option from the settings menu.

import members

Upload your CSV file to Ghost, and map each of the fields contained in your CSV to the corresponding fields in Ghost. The email field is required in order to create members in Ghost, while the other fields are optional.

Importing paid members

To import paid members with an existing Stripe subscription, you must import their Stripe customer ID.

import members

Once the import has completed, all your subscribers will be migrated to Ghost.

Importing subscribers with a comp or gift plan

If you've provided any of your subscribers with a free or gifted paid access to premium content in Substack, you can also give them free access to paid content in Ghost by importing their email address with the Complimentary Plan column flagged as true in your CSV import.

This provides these members with unlimited free access to premium content on your Ghost publication with an access level of paid-members only. If you'd like your members complimentary access to expire after a specific date, the easiest way to do this is to edit the complimentary subscription directly in Stripe and schedule the date the subscription should be cancelled.

import members

Disconnect Substack from Stripe

It is recommended that you close signups on Substack and disconnect Substack from your Stripe account as soon as you've completed your migration to Ghost, so that your data doesn't get out of sync. You can do this by going to https://dashboard.stripe.com/account/applications — and clicking on Revoke Access.

disconnect substack from stripe

Because of how Stripe works, disconnecting will not prevent Substack from continuing to take a 10% commission on all existing subscriptions. It is possible to remove these fees from existing subscriptions, but this requires custom engineering work to run a script against your Stripe account. If you're Ghost(Pro) customer, we can do this work for you as a part of the migration, otherwise you will need to do this engineering work in-house.