A collection of tools for migrating to Ghost.
Each tool has its own detailed documentation:
- Ghost
- beehiiv
- beehiiv Members
- Blogger
- Buttondown
- Chorus
- Curated
- Curated members
- Jekyll
- Letterdrop
- Libsyn
- Mailchimp Members
- Medium Content
- Medium Members
- Squarespace
- Stripe
- Substack
- Substack members
- Tiny News
- Tiny News Members
- WordPress API
- WordPress XML
Migrate is a set of command line tools, install them globally:
npm install --global @tryghost/migrate
Run migrate --help to see a list of available commands.
Basic usage is migrate [source] source-info:
E.g.
migrate medium --pathToZip /path/to/export.zip
migrate wp-api --url https://mywpsite.com
Each source comes with optional flags to customise the migration:
migrate [source] --help will give more detail
This is a mono repository, managed with Nx and yarn workspaces.
git clonethis repo &cdinto it as usualyarn setupto install all dependencies
To make sure the TypeScript packages are built (immediately and after file changes), use
yarn build:watchOr run yarn build once if you don't need the watching.
To run a local development copy, cd into this directory, and use yarn dev instead of migrate like so:
yarn dev [source]yarn lintrun just eslintyarn testrun lint and tests
yarn shipto interactively version bump and publish- Uses
nx releaseunder the hood — prompts per-package for the bump level - Publishes all packages which have changed
- Also updates any packages which depend on changed packages
- Uses
When publishing a package for the first time, use yarn ship:first-release. This tells nx release to skip looking for previous git tags or npm registry versions, which would otherwise fail for an unpublished package.
- Create the package in
packages/(see CLAUDE.md for the template) - Set
"version": "0.0.0"in itspackage.json - Commit and merge to
main - Run
yarn ship:first-release— select the initial version when prompted
Copyright (c) 2013-2026 Ghost Foundation - Released under the MIT license.