Bubble.io Branch Management

Bubble Branching SOP

Overview

This workflow keeps Main always stable, coordinates parallel development, ensures one daily integration into a shared QA environment, and allows sprint-based releases to production.


Branch Structure

Live                        → Production
Main                        → Stable release candidate
qa-test-branch              → Daily integrated build / QA environment
feature/<dev>/<ticket>      → Individual development branches

Core Principles

  • All feature work happens in feature/<dev>/<ticket> branches.

  • qa-test-branch is the shared integration environment, updated once per day at the end of the workday.

  • Developers pull updates from qa-test-branch into their feature branches daily to stay in sync.

  • Conflicts are resolved in feature branches, never in QA or Main.

  • Main only receives changes once QA has approved the sprint release.

  • QA tests are performed on the qa-test-branch, not Main.

  • Live is updated only during end-of-sprint release.

  • Team communicates in Slack for sensitive merges (conflict-heavy, pre-release, hotfixes).

 


Daily Development Workflow

1) Work Normally in Feature Branch

feature/<dev>/<ticket>

2) Preparing a Feature for QA (Move to Ready for Revision)

A feature may move to Ready for Revision only after:

  • Functionality completed and tested locally.

  • Perform sync:

     
    Main → feature/<dev>/<ticket> qa-test-branch → feature/<dev>/<ticket>
  • Resolve conflicts in the feature branch.

  • Re-test locally.

 


3) Daily QA Integration (End of Workday)

Performed once per day:

qa-test-branch ← all feature branches in Ready for Revision

This creates a single stable daily build for QA.


4) Developers Sync With the New Baseline

After the daily QA merge is complete, every developer updates their feature branch:

feature/<dev>/<ticket> ← qa-test-branch

This ensures:

  • Everyone is working from the same unified integrated state

  • No one depends on Main for daily updates

  • Main remains clean and stable


5) QA and Client Testing (Next Day)

Result Action
Approved Feature waits in qa-test-branch for release
Rejected Card moves to QA → Developer fixes in feature branch → Will be included in next day's integration merge

Release to Main (When Sprint QA Passes)

Performed by TL or Lead Dev

Condition Action
Main unchanged since integration Main ← qa-test-branch
Main changed since integration qa-test-branch ← Main → quick smoke test → Main ← qa-test-branch

Sprint Release to Live

Performed once per sprint:

Live ← Main

Followed by QA smoke testing in production.


Board Columns

To Do → Doing → Ready for Revision → QA (if needed) → Done

Testing is tied to the daily integration.


Guardrails

  • Never merge feature branches directly to Main or Live.

  • Conflicts are always fixed in feature branches.

  • qa-test-branch receives merges once per day only.

  • Only TL or Lead Dev may:

    • Merge qa-test-branch → Main

    • Deploy Main → Live

  • Team must communicate via Slack during sensitive merges.


Process Summary Diagram

feature/<dev>/<ticket>
        ↓ (Ready for Revision)
[End of Day] qa-test-branch ← feature branches
        ↓
feature/<dev>/<ticket> ← qa-test-branch (next morning sync)
        ↓
QA tests qa-test-branch
        ↓
If approved batch → Main
If sprint done → Live




Contact Information

For questions or further clarifications, please contact:


Was this article helpful?
© 2025 LowCode Internal Docs