Skip to main content
Metabind uses a three-layer versioning system that guarantees your published content always renders exactly as intended — even as you continue developing new components and layouts.

The version chain

Each layer locks to a specific version of the layer above it:
Packages (v1.0.0, v1.0.1, v2.0.0...)

Content Types (lock to a package version)

Content (locks to a content type version)
When you publish content, it captures the exact version of the content type and package it was created with. That content will always render the same way, even if you later update your components or content types.

Packages: versioned component snapshots

A package is an immutable snapshot of your entire component library at a point in time. When you publish a package, Metabind captures:
  • All component code and compiled output
  • Component metadata and properties
  • Assets used by components
Packages use semantic versioning (1.0.0, 1.0.1, 2.0.0). Once published, a package version never changes.

The draft package

While developing, you work with the draft package — a special version that always reflects your latest component changes. The draft package updates automatically as you edit components.
Content types using the draft package cannot be published. You must publish a package first, then update your content type to use that version.

Content types: locked to packages

When you create a content type, you select which package version it uses. This determines which components are available and how they render.
Package referenceBehavior
DraftUses latest component code. For development only.
Published versionLocked to specific component code. Safe for production.

Update to a new package

When you publish a new package version and want a content type to use it:
  1. Open the content type
  2. Click the package version indicator
  3. Select the new version
  4. Publish the content type
The content type now uses the new package. Existing content continues using the previous content type version until you choose to migrate it.

Content: locked to content types

When content is published, it captures the content type version it was created with. This creates a complete chain:
  • Content v1 → uses Content Type v2 → which uses Package v1.0.1
Even if you later update the content type to use a newer package, Content v1 continues rendering with the original components.

Why this matters

Imagine you redesign your article layout. With version locking:
  • New articles use the new layout
  • Existing published articles keep the original layout
  • No surprises, no broken content
You control when to migrate existing content to new versions.

Draft vs. published

Each layer has its own draft/published status:
LayerDraft statePublished state
Package”draft” — always latest code”1.0.0” — frozen snapshot
Content TypeCan edit freely, not yet liveVersion number assigned, live
ContentWork in progressLive to users

Publishing rules

The system enforces a logical publishing chain:
  1. Packages can be published anytime
  2. Content Types can only be published if they reference a published package (not draft)
  3. Content can only be published if it references a published content type (not draft)
This ensures published content always has a complete, stable version chain.

Migrating content

When you update a content type to use a new package or layout, existing content doesn’t automatically update. To migrate content to a newer content type version:
  1. Open the content
  2. The editor shows if a newer type version is available
  3. Choose to migrate when ready
  4. Review changes and publish
This gives you control over when changes roll out to existing content.

Version history

Both content types and content maintain full version history. You can:
  • View previous versions
  • Compare changes between versions
  • Restore earlier versions if needed
Navigate to the item and click View History to access version history.

What’s next