migration

Migrating from Substack to Ghost

Licence and terms

Substack
A closed product from Substack.
Ghost
MIT, Open source
Fit
Full replacement Publishing with free and paid newsletter subscriptions on your own domain.

Compatibility

Ghost ships a Substack migrator in Ghost Admin under Settings > Advanced > Import/Export. It imports posts from Substack’s export file, and free and paid subscribers from Substack’s CSV files. Paid memberships require Ghost to be connected to the same Stripe account as your Substack.

Before you switch

  1. If you have paid subscribers, connect Stripe first in Settings > Memberships > Tiers with Connect with Stripe, choosing the account already connected to Substack.
  2. Log in to Substack, then open the migrator and enter your Substack’s public URL.
  3. Follow Open Substack Settings, click Create new export and upload the zip file Substack generates.
  4. Download the free subscribers CSV from Substack and upload it, then do the same for paid subscribers.
  5. Review the post and member counts Ghost reports, and click Import content and subscribers.

For migrations the built-in tool cannot handle, Ghost(Pro) customers can ask Ghost’s migrations team, and self-hosters can use the open-source command-line tools in TryGhost/migrate.

Pitfalls

Official guide

Ghost's migration guide ↗

Reviewed on 2026-10-06.

Sources

Other alternatives to Substack →