ENVIRONMENTS

Your Developers Have Had Branches for 15 Years

Zunoy brings git-style branching to content. Clone your types, entries, and pages into an isolated environment, work there, and merge when it's actually ready.

WHAT IT MEANS

Structure Branches, Not Just Drafts

Git-style content branching creates an isolated copy of your content structure and data that can be modified without affecting the live site. Creating a branch clones content types, entries, and pages, and changes stay contained until the branch is merged. Plenty of platforms offer draft states for individual entries. Very few let you add a content type, restructure a page's blocks, and rewrite twelve entries as one unit of work that either ships together or doesn't ship at all.

Schema changes stay off the live model until merge

Add or restructure a content type on the branch; the live model is untouched until you merge.

Bulk content rewrites without staged-publishing gymnastics

Rewrite a dozen entries as one unit of work instead of juggling per-entry draft states.

Discard a branch entirely if the experiment fails

Nothing was ever live, so walking away costs nothing.

What a Branch Actually Contains

Branches clone the objects that define your site's structure and content, while media remains a shared central library so assets are referenced rather than duplicated across every branch you create.

Content types

Add or restructure schema without touching the live content model.

Entries

Rewrite content in bulk, isolated from what visitors currently see.

Pages

Rebuild composition and block arrangement without publishing it.

Forms

New forms stay off the live site until the branch merges.

GUARDRAILS

Your "main" Branch Can't Be Overwritten or Renamed

Every workspace has a main branch representing live content, and naming a new branch main is rejected, so there's never ambiguity about what's live. Branch names are slugified automatically — feature/dark-mode becomes feature-dark-mode — keeping your naming conventions while getting a URL-safe identifier.

main cannot be shadowed or recreated

Names slugify predictably, duplicates are refused

Per-branch counts show scope before you merge

Why Your Analytics Don't Break When You Branch

Workspace analytics are deliberately scoped to main, not every branch you create.

Branch three times and your published-entry count doesn't quadruple

Cloned content on working branches never inflates your inventory

Dashboards keep describing your live site, not your drafts

How It Works

Four steps, with a deliberate merge decision at the end rather than changes leaking live as they are made.

Create a branch

Name it and pick a source; content types, entries, and pages are cloned in.

Work in isolation

Add, edit, and restructure. main and every other branch are unaffected.

Check the scope

See per-branch counts of what the branch contains relative to main.

Merge

Bring the changes into main, making them live together as one release.

Create a branch

Name it and pick a source; content types, entries, and pages are cloned in.

Work in isolation

Add, edit, and restructure. main and every other branch are unaffected.

Check the scope

See per-branch counts of what the branch contains relative to main.

Merge

Bring the changes into main, making them live together as one release.

Create a branch

Name it and pick a source; content types, entries, and pages are cloned in.

Work in isolation

Add, edit, and restructure. main and every other branch are unaffected.

Check the scope

See per-branch counts of what the branch contains relative to main.

Merge

Bring the changes into main, making them live together as one release.

Create a branch

Name it and pick a source; content types, entries, and pages are cloned in.

Work in isolation

Add, edit, and restructure. main and every other branch are unaffected.

Check the scope

See per-branch counts of what the branch contains relative to main.

Merge

Bring the changes into main, making them live together as one release.

Create a branch

Name it and pick a source; content types, entries, and pages are cloned in.

Work in isolation

Add, edit, and restructure. main and every other branch are unaffected.

Check the scope

See per-branch counts of what the branch contains relative to main.

Merge

Bring the changes into main, making them live together as one release.

What Teams Actually Use Branches For

Branching earns its keep on work that spans multiple content objects at once, where publishing changes individually would leave the live site in an inconsistent intermediate state.

Site redesigns

New types, restructured pages, rewritten copy — shipped as one release.

Seasonal campaigns

Build the whole campaign early, merge on launch day.

Content migrations

Reshape a model and its entries with a working live site throughout.

Risky experiments

Try a structural change, discard the branch if it doesn't work.

Parallel workstreams

Two teams, two projects, no stepping on each other.

Client demos

Build a new section and show it before it exists publicly.

Connected to the Rest of the Platform

Branching applies across the objects that make up your site, and deliberately does not apply to shared media or analytics.

Headless CMS Engine

Content types and entries branch together as a unit

Visual Page Builder

Page composition branches with everything else

Forms

Branch-scoped, so new forms stay isolated until merge

Insights

Analytics track main, keeping metrics tied to your live site

Common Questions

Does Zunoy support branching content like a codebase?

Yes. Creating a branch clones content types, entries, and pages into an isolated environment that stays separate from the live site until it is explicitly merged, so structural and content changes can ship together as one release.

Do changes on a branch affect my live site?

No. Changes stay isolated from the main branch and from other branches until merged, so in-progress work is never publicly visible regardless of how long the branch stays open.

How do I know what's in a branch before merging it?

The branch list shows per-branch counts of content types, entries, and pages alongside the same figures for main, so the scope of a branch is visible before you merge it.

What gets copied when I create a branch?

Content types, entries, and pages are cloned from the source branch so you start from an accurate snapshot. Media assets remain in the shared central library, referenced rather than duplicated per branch.

Can I name a branch anything I want?

Almost. Names are slugified automatically, so feature/dark-mode becomes feature-dark-mode. Duplicate names are rejected at creation, and the name main is reserved for your live branch.

Do branches distort my analytics?

No. Workspace analytics are deliberately scoped to the main branch, so cloned content on working branches does not inflate entry counts or other inventory metrics.

Give Content the Safety Net Code Already Has

Isolated work, visible scope, and a deliberate merge. Nothing ships by accident.

Ask a question about Zunoy's products, pricing, or docs.

⌘K