Your Contentful bill just crossed $1,000 a month and you started looking at alternatives. ContentGrid covers the same use cases at roughly one-fifth of the price, but the migration feels daunting when you have dozens of content types and thousands of entries. It does not have to be. Most teams complete the move in two days.
Export Your Contentful Content Model
Start with the schema, not the entries. Use the Contentful CLI to export your space:
- Run contentful space export --space-id YOUR_SPACE_ID to get a JSON dump of your content types and entries.
- Open the export file and note every content type, its fields, and the field types (Symbol, RichText, Link, Array).
- List any reference fields that link one content type to another — these need special handling.
Do not try to migrate entries before your schema is confirmed in ContentGrid. Schema mismatches cause silent data loss.
Recreate the Schema in ContentGrid
ContentGrid uses a schema-driven model similar to Contentful. For each content type in your export, create a matching type in the ContentGrid dashboard or via the API. Field type mappings are straightforward:
- Contentful Symbol → ContentGrid Short Text
- Contentful RichText → ContentGrid Rich Text
- Contentful Link (Entry) → ContentGrid Reference
- Contentful Array of Links → ContentGrid Reference List
- Contentful Media → ContentGrid Asset
Once all types are defined, use the ContentGrid TypeScript SDK to validate the schema programmatically before importing any entries.
Migrate Entries With a Script
Write a small Node.js script that reads the Contentful export JSON and posts each entry to ContentGrid via the Management API. Keep it simple:
- Loop over each content type in order of dependency — types with no references first.
- Map Contentful entry IDs to ContentGrid entry IDs and store the mapping in a local JSON file.
- For reference fields, use the stored ID map to rewrite links before posting.
- Upload assets separately using the ContentGrid asset endpoint and update the ID map.
Run the script against a ContentGrid development environment first. Environments in ContentGrid work like Git branches — you get a full copy of the schema and can import without touching production.
Update Your Front-End API Calls
If you are using Next.js, your data-fetching layer is probably isolated in a lib/contentful.ts file. Replace the Contentful SDK calls with ContentGrid SDK calls and keep the response shape identical. Your page components do not need to change. Once the import is verified and your staging environment looks correct, point the environment variable to production and you are done.
The migration is mostly mechanical. The hardest part is mapping nested reference structures, and even that becomes straightforward once you have the ID map in place. Teams that plan the schema first and write entry migration scripts second finish faster and with fewer surprises.
Ready to start tracking your competitors?
ContentGrid automatically monitors competitor websites, emails, and social media — and delivers structured intelligence straight to your inbox.