The Honest Truth

Framer has a CMS. It lets you create collections, manage blog posts, and build dynamic pages. But when it comes time to leave, you will discover something frustrating: there is no "Export CMS" button.

When you export a Framer site, CMS-powered pages become static snapshots. The data structure, API, and dynamic filtering are lost. This page is about workarounds, not magic.

This matters more than most people realize. If you have 50 blog posts in Framer's CMS, those posts are stored in Framer's proprietary format on Framer's servers. Export gives you the rendered HTML, but not the structured content you spent months creating.

What Exports vs What Doesn't

What you keep

  • All visible content as static HTML
  • CSS styles and animations
  • Images and fonts
  • Page structure and layout

What you lose

  • CMS collections and filtering
  • Dynamic content loading
  • CMS API access
  • Content relationships and references

The exported site looks identical to your live Framer site. Every blog post, every portfolio item. All the pages are there. But they are frozen. No more filtering by category, no more "related posts" that update automatically, no more adding new items through the CMS panel.

4 Ways to Save Your CMS Content

1

Export as a static snapshot

Best for: sites with fewer than 50 CMS items

When you export your Framer site, every published CMS page is included as a standalone HTML file. A blog with 30 posts becomes 30 individual HTML pages. The content is all there. It is just frozen in place. If you need to update something later, you edit the HTML directly or re-export from Framer.

This is the simplest approach. If your CMS usage is light (a few case studies, a handful of blog posts), the static export is good enough.

2

Use Framer's Official CMS Export Plugin

Best for: anyone (no code required)

Framer has an official CMS Export plugin (24,800+ users) that exports any CMS collection as a CSV file. Open your Framer project, go to Plugins → search "CMS Export" → select your collection → preview → download CSV. You get all titles, slugs, body text, images, and metadata in a structured format you can import into Sanity, Contentful, WordPress, Notion, or a spreadsheet. Do this before you cancel your Framer plan.

3

Use the Framer Server API (for developers)

Best for: developers migrating to a new platform

Framer's Server API (free during beta) lets you programmatically access CMS collections from any server. Generate an API key in Site Settings → General, install the framer-api npm package, and pull your collections as structured data. This is ideal for batch-migrating to Supabase, Sanity, or your own database.

npm install framer-api // backup-cms.js import { connect } from "framer-api" const project = await connect({ apiKey: "YOUR_KEY" }) const collections = await project.getCollections() // Export each collection's items as JSON
4

Migrate to Supabase (no item caps, free)

Best for: outgrowing Framer's CMS limits

Export your CMS data via the plugin (CSV) or Server API, then import into Supabase (free tier: 50,000 rows, 500MB storage). You get a real Postgres database with no item caps, an API out of the box, and full SQL access. Use AI tools like Cursor or Claude to connect your exported Framer site to Supabase. Describe what you want in plain English and the AI writes the integration code.

Framer CMS Limits

Framer caps the number of CMS items per plan. If you are hitting these limits, you have likely outgrown what their CMS was designed for.

20 items
Free tier
1,000 items
Basic – $10/mo
10,000 items
Pro – $25/mo

For comparison: Supabase gives you 50,000 rows and 500MB storage for free (with a real Postgres database and API). Sanity offers 100,000 documents on its free tier. Contentful gives you 25,000 records. If your content library is growing, Framer's CMS will hold you back.

Why Backups Matter

THIS CAN'T BE TRUE HELP – my account got blocked and all of my sites went offline without any warning.

– r/framer (211 upvotes)

This is not a hypothetical risk. When your Framer account is suspended, blocked, or canceled, every site goes offline immediately. All that CMS content you spent months building? Locked inside a platform you can no longer access. Having a backup (even a static export) is not paranoia. It is basic risk management.

What To Do Next

If your site is mostly static pages with a few CMS items, the standard export works perfectly. You get every page as clean HTML, and you can host it anywhere for free. The CMS content is there, just baked into the pages instead of stored in a database.

For content-heavy sites with 100+ blog posts, consider migrating to a headless CMS like Sanity, Contentful, or even Markdown files. Use the Framer CMS API to pull your structured content before you leave, then use the exported design as your front-end template. You keep the design work and gain real content portability.

Export your Framer site

CMS content included as static pages. Own your code, host anywhere.

Export Your Framer Site

Frequently Asked Questions

Partially. CMS-powered pages are included as static HTML snapshots. The visible content is preserved, but the underlying CMS structure, collections, filtering logic, and API access are lost. You get frozen pages, not a portable database.

Yes. After exporting your Framer site to code, you can replace the static CMS pages with a headless CMS like Sanity, Contentful, or even Markdown files. The exported HTML and CSS become your design template, and the headless CMS provides the dynamic content layer.

For small sites, edit the exported HTML files directly or use AI tools like Cursor or Claude to make changes. For content-heavy sites, connect a headless CMS to your exported templates so non-technical team members can update content without touching code.