
Sync blog posts from any Sanity project into a Framer CMS Collection.
Enter your project ID and dataset — no code, no API token. The plugin reads your published content, maps it onto Framer fields, and keeps the Collection up to date on every sync.
Portable Text, fully converted. Headings, paragraphs, lists, blockquotes, bold, italic, underline and links all carry over. Body images come through as well, with their captions — assets are resolved to full URLs with their dimensions, so Framer hosts them and reserves layout space instead of reflowing your article.
Stable identity. Items are keyed on the Sanity document ID, not the slug. Renaming a post's slug updates the existing item rather than deleting and recreating it, so nothing bound to it on your canvas breaks. Posts deleted in Sanity are removed on the next sync.
Before you start
Your dataset must be public — the plugin sends no token and cannot read private datasets or drafts. You will also need to add this plugin's origin to your project's CORS origins at sanity.io/manage, with credentials disabled; if you skip it, the plugin shows you the exact origin to add. It expects a post document type with title, slug, publishedAt, excerpt and body fields.
Note that Framer syncs CMS collections on demand, not on a schedule — after publishing in Sanity, open the plugin to pull the changes.

Sync blog posts from any Sanity project into a Framer CMS Collection.
Enter your project ID and dataset — no code, no API token. The plugin reads your published content, maps it onto Framer fields, and keeps the Collection up to date on every sync.
Portable Text, fully converted. Headings, paragraphs, lists, blockquotes, bold, italic, underline and links all carry over. Body images come through as well, with their captions — assets are resolved to full URLs with their dimensions, so Framer hosts them and reserves layout space instead of reflowing your article.
Stable identity. Items are keyed on the Sanity document ID, not the slug. Renaming a post's slug updates the existing item rather than deleting and recreating it, so nothing bound to it on your canvas breaks. Posts deleted in Sanity are removed on the next sync.
Before you start
Your dataset must be public — the plugin sends no token and cannot read private datasets or drafts. You will also need to add this plugin's origin to your project's CORS origins at sanity.io/manage, with credentials disabled; if you skip it, the plugin shows you the exact origin to add. It expects a post document type with title, slug, publishedAt, excerpt and body fields.
Note that Framer syncs CMS collections on demand, not on a schedule — after publishing in Sanity, open the plugin to pull the changes.