Skip to content
MorphMorph Docs
Plugin Guide

Syncing & Publishing

How rule changes sync from the plugin to your published site.

Morph has a two-step process: syncing your rules from the plugin to the backend, and the runtime picking up those rules when visitors load your site.

Saving rules

When you edit rules in the plugin (add variants, change conditions, toggle status), changes are held locally until you explicitly save. The Unsaved Changes banner appears when you have pending changes.

  • Save — syncs all rule changes to the Morph backend
  • Discard — reverts to the last saved state

The plugin also warns you if you try to close it with unsaved changes.

Publishing your Framer site

After saving rules in the plugin, publish your Framer project as usual. The Morph runtime script is already in your site's <head> (injected during setup), so no additional steps are needed.

How the runtime updates

The runtime endpoint (/api/runtime/YOUR_SITE_KEY) returns a JavaScript file with your active rules baked in. It has a 5-minute cache (Cache-Control: public, max-age=300).

This means:

  • Rule changes you save in the plugin are reflected on your live site within 5 minutes
  • If you need immediate updates, republish your Framer site — this forces browsers to re-fetch
  • The runtime is served from Vercel's edge network for fast global delivery

Domain syncing

When you publish your Framer site, the plugin detects the published domain (e.g., mysite.framer.app or your custom domain) and syncs it to your Morph site record. This happens automatically — you don't need to configure anything.

If you change your Framer project's custom domain, the next publish will update the domain in Morph.

What gets synced

When you save, the following data is sent to the backend:

  • Rule names and statuses
  • Variant definitions (name, conditions, component references)
  • The current Framer publish domain

What stays local:

  • The visual content of your variants (that's part of your Framer project, not Morph)
  • Draft rules that haven't been saved