💡 Migrating paid memberships from Substack? You will need to set up Stripe first — find out more. Make sure to use the same Stripe account that is connected to your Substack.
Run the migration
The Substack migrator allows you to quickly import content and members from your Substack to your Ghost publication. You can access the migrator tool from the Settings → Advanced → Import/Export area of Ghost Admin.
1. Enter your Substack URL
To start the migration process, enter the public URL to your Substack, and click Continue.
2. Export content
Next, click Open Substack Settings. If already logged into Substack, this will take you directly to the location of your Substack account where an export can be generated.
3. Upload content
Once your export has been downloaded, return to the migrator window in Ghost Admin, and select Click or drag file here to upload, and navigate to the zip file you downloaded from Substack, once uploaded click Continue. If you’re unsure of where the file was saved, check your Downloads folder.4. Export free subscribers
Next, it’s time to import your Substack subscribers. Click Download free subscribers from Substack, to trigger a CSV file download of your subscriber list. Once downloaded, select Click or drag CSV file here to upload and navigate to the CSV download, and click Continue.
5. Export paid subscribers
💡 Migrating paid memberships from Substack? You will need to set up Stripe first — find out more. Make sure to use the same Stripe account that is connected to your Substack.

6. Review
Ghost will confirm the number of posts and members that will be imported to your publication. If satisfied, click Import content and subscribers to begin the import of your data.
Substack fees
Ghost does not take a cut of your revenue. Substack will continue to take 10% fees on your existing paid subscriptions. If you would like help getting payment fees removed, contact concierge@ghost.org.Statement descriptor
The statement descriptor is what’s shown on bank statements, and depending on how the account was set up, might include ‘Substack’ in the name. We recommend updating this in your Stripe public details settings.Using custom domains
If you’re using a custom domain on Substack, you’ll need to implement redirects in Ghost to prevent broken links. Substack uses/p/
as part of the public post URL, where as Ghost uses it in the URL for post previews. This means the redirect regular expression is quite complex, but necessary so that post previews in Ghost function correctly.
https://mysite.com/p/awesome-post
, they will automatically be redirected to https://mysite.com/awesome-post
.
For more information on Substack redirects, visit our guide here.