Engineering

A merge button is not a code review

Bubble's merge screen lists every change between two branches, groups them by page, and makes you resolve conflicts one row at a time. It is better tooling than most people outside the platform assume. The gap is who is looking at that screen. It is the person who made the changes, approving their own work, seconds before it reaches production.

What the platforms actually built

Credit where it is due. On Bubble's Starter plan at $59 a month you get basic version control, which means a Main branch you develop in and a read-only Live branch you deploy to. Growth, at $209 a month, unlocks premium version control with 10 custom branches and a hotfix branch that can go straight to Live when something is on fire. Team, at $549, raises that to 25 branches and 5 app editors. During a merge, Bubble previews the non-conflicting changes grouped by page, then puts conflicts side by side so you can pick which branch wins each row, and it writes an automatic savepoint before and after.

Xano went further on the diff itself. Compare Branches renders the difference between two branches in XanoScript with additions in green and deletions in red, and you can step through the changes one at a time before deciding to merge anything. Xano's own docs also carry a line worth sitting with: if you prefer Git, use the Xano CLI and you get standard Git branching, diffs and pull requests alongside their push and pull workflow. A platform built to replace the backend repo now documents how to put the repo back.

A diff you read to yourself is not a review

Code review is a blocking gate. Somebody who did not write the change has to read it and say yes, and on most teams the branch protection rule makes that mechanical rather than optional. Bubble's merge screen does none of that. There is no required reviewer, and no thread hanging off the step that mishandles an empty list where someone can say they think it breaks on an empty array. The merge flow is a confirmation dialog with a very good preview attached.

Then there is the record. Bubble's changelog retention runs 14 days on Growth, 20 days on Team, 30 on standard Enterprise, and a year only on a dedicated instance. So at $209 a month, the answer to who changed this and why stops existing two weeks after it happened. Git's log does not expire and costs nothing to keep. Three months later, when a payment flow starts dropping one order in forty, one of those two situations is a ten-minute investigation and the other is guesswork.

Xano has its own version of this hole. Branches copy business logic, which means APIs, functions, addons and tasks, and they do not cover the database. Environment variables are stored together across branches when you use branching and merging, so you parse them yourself at runtime depending on which branch is live. The schema change that actually broke production never appears in the branch diff you were so carefully reading.

The part AI changed

Writing an endpoint stopped being the slow part of software. An assistant drafts it in a minute, which is the whole reason the no-code speed advantage evaporated. What did not get cheaper is knowing a change is safe, and that work is textual. You read a diff, you run the tests against it, you ask the person who owns that module whether the edge case is handled. A canvas of connected boxes resists every step of that.

When we moved Stay World Class off Webflow and Xano onto Next.js, NestJS and Supabase, Lighthouse went from 55.91 to 91 out of 100 and LCP came down 77%. The number I care about more is that the four-stage ETL mapping their legacy IDs onto PostgreSQL UUIDs went through review stage by stage, because a mistake there would have silently orphaned customer records and nobody would have noticed for weeks. That migration was reviewable because it was text.

When the merge button is enough

If you are the only person who touches the app, a review gate buys you nothing. You would be approving your own pull requests, which is a ritual, not a safeguard. Bubble's savepoints and Xano's pre-merge branch backups will restore you to a working state, and that covers the realistic failure.

The same holds if you deploy twice a month, your users tolerate a bad hour, and no auditor will ever ask you to prove who changed a permission rule last March. Plenty of good businesses run exactly like that. The ceiling only starts to hurt when a second engineer arrives, deploys get frequent, or somebody downstream needs the history to still be there.

Sources

Is your platform outgrowing its stack?

Book a call and we'll walk through how we'd approach your platform, with an estimate grounded in a working prototype.