Migration Guide

Migrate from Contentful in minutes

Import your content types, entries, assets, and locales. Same rich text format. Your rendering code works unchanged.

Join the Cloud Waitlist
Get early access to Schemaful Cloud with seamless Contentful migration.

Want to self-host now? Get started for free

What gets migrated

Everything transfers. Your content structure stays intact.

Content Types
Schemas
1:1 field mapping
Entries
Entries
All locales preserved
Assets
Assets
Metadata included
Locales
Locales
Fallback chains intact
Links
Links
Auto-remapped

Same rich text format

We use the same rich text JSON structure as Contentful. Your existing rendering code works unchanged.

{
  "nodeType": "document",
  "content": [
    {
      "nodeType": "paragraph",
      "content": [
        { "nodeType": "text", "value": "Your content " },
        { "nodeType": "text", "value": "just works", "marks": [{ "type": "bold" }] }
      ]
    },
    {
      "nodeType": "embedded-entry-block",
      "data": { "target": { "sys": { "id": "abc123", "linkType": "Entry" } } }
    }
  ]
}

What you get after migrating

No API Metering
Fetch content as often as you need.
Unlimited Locales
No per-locale fees.
Your PostgreSQL
Query directly with SQL.
No Lock-In
Export with pg_dump anytime.

Self-host today

Don't want to wait for cloud? Self-host now and migrate with our CLI.

# Export from Contentful
npx contentful-cli space export --space-id YOUR_SPACE

# Import to Schemaful
npx schemaful migrate --from contentful --file export.json