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
Sync
When main changes, every open branch and draft syncs at once, property by property. Nobody presses anything.
| Main changed it | Branch changed it | Result |
|---|---|---|
| no | — | Nothing to do |
| yes | no | The branch takes main's value |
| no | yes | The branch keeps its value |
| yes, same value | yes | No conflict |
| yes, other value | yes | Conflict |
| deleted it | changed it | Conflict |
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.
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.
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.
| Bump | Pick it when the branch… | Example | From v0.4.3 |
|---|---|---|---|
| Patch | only changes values: a colour, a size, a word | Pay button is brand/500 | v0.4.4 |
| Minor | adds something: a page, a component, a variant, a token | Add a promo code field | v0.5.0 |
| Major | removes or renames something code relies on | Rename Button · Solid to Button · Primary | v1.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
- 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.
- Open Versions and pick the version that brought the change.
- Tick the changes to undo, or press Revert the whole version.
- Babul makes the branch, e.g.
revert-promo-code, with the opposite changes committed. - 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