BuildGate

Change management and compliance for Bubble teams

GitHub for Bubble teams. Without the git.

Pull requests, required reviewers, branch rules and a history nobody can edit, for a team that works in the Bubble editor.

Nothing to learn, no git Approved by somebody else, always Evidence for SOC2 CC8.1

The idea

What a code team has on GitHub, for a team whose app is in Bubble.

On GitHubIn BubbleWith BuildGate
Pull request Press Deploy A deploy request: issue, rollback plan, approver.
Required reviewers Anyone with editor access One to ten approvals. Never the requester.
The diff Only inside a merge Both versions compared, privacy-rule changes called out.
Checks None Issue checker, automated review, deploy windows.
Protected main Anyone can merge Merges into main need an approved request.
History Who deployed, when Who requested, approved and deployed. Append-only.
Insights — Ship rate, time to decide, who did what.

How it works

From Deploy to a closed record, in eight steps.

  1. Deploy clicked Intercepted in the editor.
  2. Request opened Issue, approver, rollback plan.
  3. Branch held The editor shows what is waiting.
  4. Checks run Issue checker, review, diff.
  5. Somebody else approves Console, Slack, email or MCP.
  6. Deploy authorised Single-use token, fifteen minutes.
  7. Bubble deploys Its own dialog, request id pre-filled.
  8. Reconciled Every Bubble release matched to a request. No match, a finding.

Review

Review a deploy like a pull request.

  • The whole changeVersions, issue, rollback plan, checks, timeline.
  • The diff itselfPages, workflows, data types, API calls.
  • Wherever the approver isConsole, Slack, email, the pull request, MCP.

Rulesets

Branch protection, for a Bubble app.

Which apps, which rules. Every change to a ruleset is on the record.

  • One to ten approvalsNever the requester. No bypass for that one.
  • Holds on a conditionReview first, a clean issue check, a deploy window.
  • Gated mergesMerging into main needs an approved request too.

Why it holds

Bubble has no deploy API. The gate lives in the editor, and does not stop there.

Preventive

The Deploy button is held

Until somebody other than the requester approves, under your rules.

Corrective

Unreachable means closed

Break-glass works offline and records itself afterwards.

Detective

Unmanaged changes become findings

Bubble's own version history is checked against the record.

Compliance

The history is the evidence.

Every request, approval, deploy and role change on a SHA-256 chain, per organization. Built for SOC2 CC8.1. Evidence, not a certification.

The chain

Each event carries the hash of the one before it.

Insights

What Bubble says shipped, beside what was approved.

unapproved Jul Aug
Bubble says shippedApproved here
Append-only at the database

No DELETE grant. Triggers reject edits for every role.

Exports an auditor can hold

Chain verified on demand. CSV and JSON by date.

A seat for the auditor

Reads everything, writes nothing.

Vanta, hourly

Apps and approved changes in your own tenant.

Your team

Roles, like a GitHub organization.

Owner

Everything.

Admin

Apps, members, rulesets. Approves.

Approver

Decides what others raised.

Deployer

Raises requests.

Auditor

Reads all, writes nothing.

Whoever raises a deploy can never decide it. Enforced in the service and in the database.

Integrations

One issue tracker is required. The git part is optional.

Getting started

An afternoon, not a quarter.

Set up in the console; the extension is only for the people who press Deploy. Start an app in observation mode and read a week of history before the button stops working.

  1. Open the consoleSign in with Google.
  2. Add a Bubble appPaste the editor URL.
  3. Invite an approverSomebody other than you.
  4. Connect Linear or ClickUpOAuth or an API key.
  5. Write a rulesetOr keep the default: one approval.
  6. Install the extensionChrome, for whoever deploys.

Straight answers

The four questions we get first.

Do we have to learn git?

No. Nobody commits, branches or merges anything. The work stays in the Bubble editor, and the request is a form that appears when somebody presses Deploy. Connect GitHub or GitLab and BuildGate keeps a copy of each app and opens the diff itself.

Can somebody just remove the extension?

From their own browser, yes. Chrome Enterprise policy can force-install it, and reconciliation reads Bubble's version history regardless, so a deploy that skipped approval becomes a dated finding.

Do approvers need to install anything?

No. They approve in the console, from Slack or email, from the pull request, or from their own MCP client.

What does an auditor get?

An append-only history per organization: a SHA-256 chain verified on demand, anchored heads, CSV and JSON exports, and a read-only role. Evidence, not a certification.

GitHub for Bubble teams. Without the git.

Add one app, watch it for a week, then turn approval on.