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.
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.