One of the most common concerns I hear from publishers considering Magic Pages is about their existing content and subscribers.
"How does the migration work?", "Will I lose any data?", or "What about my subscribers?". These are all valid questions – after all, your content and audience are the foundation of your publication.
The good news is that migrating to Magic Pages is a straightforward process. Let me walk you through exactly how migrations work, whether you're coming from a self-hosted Ghost installation, you're currently with another managed hosting provider, or run your site on a completely different platform, like WordPress, Substack, etc.
Ghost-to-Ghost Migrations
Ghost does provide built-in export options through the Ghost Admin – JSON exports for content, settings, etc. and CSV exports for members. This method works – but it has a few downsides. The exports themselves do not include certain things like comments or newsletter statistics, something that is crucial for some publishers.
That's why I always recommend migrating with full backups, above when possible. This ensures that you don't lose any historical data during the migration. Here is how that works:
Self-Hosted Ghost Sites
If you're currently self-hosting Ghost, you'll need two components for a full migration:
MySQL Database backup
The MySQL database holds all information related to posts, members, newsletters, etc. It's basically the "brain" of your Ghost installation, the one thing that knows everything that's going on.
You can create a MySQL backup for a standard self-hosted Ghost installations using the following mysqldump command:
mysqldump -u your_username -p your_database_name > ghost_backup.sql
You will have to enter your MySQL password when prompted.
Content Folder backup
The "content folder" is well...literally a folder called content
. It lives within Ghost's file system and stores your themes, images, files, and some other details like logs, or your routing files.
To back up your content folder, I would recommend rsync
. Use your username and server hostname to connect to it. Execute the following on your local computer, not your server.
rsync -av your_username@your_server:/path/to/ghost/content/ ./content/
Self-Hosting with Docker
If you're self-hosting your Ghost site with Docker, the steps involved to get your backups are a little different. You most likely have two separate Docker containers. One for Ghost itself, and one for your MySQL database.
To back up your database, you can do the following:
# First, list your containers to find the MySQL one
docker ps
# Then create the backup directly from the container
docker exec MYSQL_CONTAINER_NAME mysqldump -u root -p ghost > ~/ghost-migration/ghost_backup.sql
For the content folder in a Docker setup, you'll need to locate and copy from your mounted volume. Here's the safest way to do this:
# Create a directory for your backups
mkdir -p ~/ghost-migration
# First, find your Ghost volume
docker volume ls
# Inspect the volume to find its location
docker volume inspect ghost_ghost_data
# Create a temporary container to copy the content
docker run --rm \
-v ghost_ghost_data:/ghost_content \
-v ~/ghost-migration:/backup \
alpine \
tar czf /backup/ghost_content_backup.tar.gz -C /ghost_content .
Now both your backups are in the ~/ghost-migration
folder on your Docker host. You can download them to your local computer using rsync:
rsync -av your_username@your_server:~/ghost-migration/ ./ghost-migration/
This will create a local copy of both your database backup and your content archive. Once you have these files, just send them to help@magicpages.co using a file hosting service of your choice, and I'll handle the rest of the migration process into your Magic Pages site.
Moving From Another Ghost Host
If you're using another managed Ghost hosting service, the process is similar, but you won't need to run any commands yourself. Simply reach out to your current host's support team and request:
- A full MySQL database backup
- A backup of your content folder
Some Ghost CMS hosting providers also have direct download options, which means you can do that rather than reaching out.
In my experience, every Ghost hosting provider can provide these backups, though sometimes you might need to be a bit persistent in asking. Once you have these files, send them to me, and I'll take care of the migration.
Migrating From Other Platforms
While Ghost-to-Ghost migrations are straightforward, moving from other platforms like WordPress, Substack, or Medium requires a different approach. Thankfully, the Ghost team maintains an excellent set of migration tools that make this process much easier.
These tools handle everything from content conversion to subscriber imports. For example, if you're moving from Substack, you'd first install the migration tool on your local computer (make sure you have NodeJS installed):
npm install --global @tryghost/migrate
Then run the migration with an export file, Substack provides for you:
migrate substack --pathToZip /path/to/your/substack-export.zip
The tool automatically converts your content to Ghost's format, while preserving things like formatting, images, and even subscriber data where possible. It currently supports migrations from many popular platforms including WordPress (both API and XML exports), Substack, Medium, Beehiiv, Squarespace, Jekyll, Blogger, and more.
The migrate
tool creates a zip file that is fully compatible with Ghost. You can directly upload it to Ghost's import (Settings > Labs > Universal Import). The import might take a few minutes, but if everything goes right, you'll then have a new Ghost site with all your existing content.
Personally, I also use these official Ghost migration tools for migrating customer sites that are not based on Ghost.
Need help planning your migration? Just drop me a line at help@magicpages.co. Whether you're running a self-hosted Ghost site, using another hosting provider, or moving from a different platform entirely, I'll guide you through the exact steps needed for your specific situation.

About Jannis Fedoruk-Betschki
I'm the founder of Magic Pages, providing managed Ghost hosting that makes it easy to focus on your content instead of technical details.