1. Select a CMS collection and the fields you want
2. Select a target Code Component and its property
3. Click Sync Now
The plugin reads CMS items, compresses with gzip, encodes as a base64 data URL, and injects into the component's control property via setAttributes().
Click Publish in the editor to go live.
- Gzip compression via native CompressionStream (zero dependencies, ~65% size reduction)
- Settings persistence across sessions via pluginData
- Preview before syncing — shows item count, titles, skipped items with reasons
- Undo last sync — session-level, instant restore
- Change detection on plugin open (hash comparison)
- Size guard — warns at 1 MB, refuses at 2 MB
- Accessible — labels, aria-live regions, keyboard navigation
Your Code Component needs a ~15-line decoder function to read the data URL. It decodes base64, auto-detects gzip via MIME type and magic bytes, and decompresses using the native DecompressionStream API. Handles both gzip and plain JSON automatically.
Works with any Framer CMS-to-component pattern: maps, product grids, event listings, portfolios, directories — any Code Component that consumes structured data.
No third-party services, no analytics, no telemetry. Uses Framer Plugin SDK only.