Content

Import Content

Migrate your content from Medium, Ghost, WordPress, Substack, or Beehiiv

You can import your existing content from Medium, Ghost, WordPress, Substack, or Beehiiv. The process is straightforward: export from your current platform, upload the file here.

Import from Medium

1. Export your content

Go to your Medium settings, navigate to Security and apps, scroll to Download your information, and click Download zip.

Before importing: Open the zip file and delete the comment files. They're small HTML files (usually under 5KB) in the posts folder. Medium includes comments mixed with your posts, and you don't want those imported as articles.

2. Upload

Once you've cleaned the zip, upload it. That's it.


Import from Ghost

1. Export your content

In your Ghost admin, go to Settings → Labs, then click Export to download a JSON file with all your content.

2. Enter your Ghost site URL

We need your Ghost site URL to properly import images. Enter something like https://yourblog.ghost.io

3. Upload

Select the JSON file and upload it.


Import from WordPress

1. Export your content

In WordPress, open Export, select All content, and click Download Export File. You'll get an XML file.

2. Upload

Upload the XML file. Done.


Import from Substack

1. Export your content

Go to substack.com, open Settings → Exports, and click Create new export. Substack will send you an email with a download link — follow it to get a ZIP archive.

2. Upload

Upload the ZIP directly. No source URL required.

What's included: Posts exported as HTML files, with a CSV index. Podcasts are automatically skipped. Posts without a title get one generated from their slug.

Embeds: YouTube and Vimeo embeds are imported as native embeds. Twitter/X and Spotify links are preserved as clickable links. SoundCloud links point to the artist page.

Tags: Substack does not export tags, so posts will be imported without tags.


Import from Beehiiv

1. Export your content

In your Beehiiv dashboard, go to Settings → Export Data, then select Export Posts and download the CSV file.

Note: Import quality depends on your email template complexity. Simple templates work best. Complex layouts with lots of custom formatting may require manual cleanup after import.

2. Upload

Upload the CSV file. That's it.


What gets imported

  • Posts and pages
  • Images (we download and host them if you have the feature enabled)
  • Basic formatting (titles, paragraphs, lists, links)
  • Publication dates
  • Tags and categories (merged as tags)
  • Cover images

What doesn't get imported

  • Comments
  • Custom styling beyond basic formatting
  • Plugins or widgets
  • User accounts (if you had multiple authors)

Advanced Options

When importing, you can configure two advanced settings:

If duplicate slug

  • Skip duplicate: If a post with the same slug already exists, it will be ignored
  • Import with unique slug: Creates a new post with a modified slug (not yet implemented)
  • Override existing content: Updates the existing post with the new content, images, and tags. Use this to re-import and sync your content.

Default status

  • Import all: Imports both published posts and drafts
  • Exclude draft: Only imports published posts, skips drafts

After import, check your posts. Some formatting might need adjustments depending on how your previous platform handled things.