Merging

The example · While Ananya worked, Kabir merged radius-fix (main v0.4.3). Her branch synced, one property clashed, and she settled it. Merging made main v0.5.0.
Northwind Web — the story on this page
new-checkout · Ananya, Kabir
Brand pay button, promo code · AnanyaFull-width pay on mobile · KabirConflict: radius
v0.0.1First capture
v0.1.0Styles cleaned
v0.2.0Order history
v0.4.2Ananya branches
v0.4.3Kabir merges radius-fix
v0.5.0Ananya merges · minor
a version of maina commit on a brancha conflict to settle
Main moves only by merges. Branches sync with it as it moves.

Sync

When main changes, every open branch and draft syncs at once, property by property. Nobody presses anything.

Main changed itBranch changed itResult
no—Nothing to do
yesnoThe branch takes main's value
noyesThe branch keeps its value
yes, same valueyesNo conflict
yes, other valueyesConflict
deleted itchanged itConflict

Conflicts

A conflict never stops a sync: the branch keeps its value and the item gets a red dot. It blocks the merge until someone picks a side.

The conflict, on the component it is on: both radii drawn, Take main or Keep branch.

When you can merge

  • No conflicts left.
  • On Team, Verify has run at least once.
  • You are Can merge or Owner.

Merge

Press Merge in the top bar, pick the version bump, add a release note, and confirm.

Merge: the commits, the bump Babul suggests, and a release note.

What happens next

  • Main becomes the new version, with your release note.
  • Every other open branch syncs to it.
  • The CLI and MCP serve it.
  • The branch moves to Merged, read-only.

Version numbers

Versions are major.minor.patch. A product starts at v0.0.1 when it is first captured, imported or created.

BumpPick it when the branch…ExampleFrom v0.4.3
Patchonly changes values: a colour, a size, a wordPay button is brand/500v0.4.4
Minoradds something: a page, a component, a variant, a tokenAdd a promo code fieldv0.5.0
Majorremoves or renames something code relies onRename Button · Solid to Button · Primaryv1.0.0

Babul suggests the bump from the changes; you can pick another.

Versions below v1.0.0 are for getting started. Make the first major merge when the design is ready for your team to build from.

History and compare

Versions: every merge is a version; compare any two.
  • Every page, component, token and icon has its own history.
  • Compare any two versions or branches, side by side and as a list.

Revert a merged change

Main only moves forward. To undo something that was merged, revert it: Babul makes a branch with the opposite change, and you merge that.

Revert: pick the merged changes to undo. Babul puts the opposite changes on a new branch.
  1. Open Versions and pick the version that brought the change.
  2. Tick the changes to undo, or press Revert the whole version.
  3. Babul makes the branch, e.g. revert-promo-code, with the opposite changes committed.
  4. Merge it, usually as a patch. Nothing in history is deleted.
If main has changed the same property since, the revert branch shows a conflict, like any other branch.

Use a version in code

$ babul pull --ref v0.5.0
$ babul diff v0.4.2 v0.5.0

The MCP tools take the same ref. Pin a version in babul.json so the whole team builds from it.

Was this page helpful? Yes No Updated Oct 22, 2026