Skip to content
Base44 logoUnofficial Office Hours archive

Switching yard / Session 56

Open Mic · feature release

Come off the line.
Fold back in.

Branches

Branches shipped hidden, mid-week, on day zero of an open beta. A branch is a second conversation with the builder in its own preview — and main has to flow into it before it can ever flow back into main.

Wednesday 5 August 202616:00 UTCOpen MicHosted by Sam
Algarve surf school · one-prompted minutes before the stream2 branches · 1 merge
16 teaching points28 answers10 announcements1:08:18 runtime

Session brief

Office Hours #56 was a feature release delivered in the Wednesday slot, which Sam noted was unusual — he believed it was the first official feature release, and possibly the first non-open-dropin, that Base44 had run on a Wednesday. The feature was Branches, described by Sam as a hotly requested one, particularly from the more technical members of the community. It had been pushed to everyone earlier that day in what he called a "light push," with the entry point deliberately kept hard to find because the feature is not 100% ready — Sam framed the whole session as "day zero" of an open beta and explicitly asked attendees to break it and send feedback. He also went out of his way to argue that although "branch" is a technical term borrowed from GitHub, the feature itself is approachable by anyone, which is why it was not held for the Thursday advanced slot.

The demo ran on a surf school landing page Sam had one-prompted minutes earlier with his own prompt-writing app. He opened the branch menu from the top-left app name, created a branch, and used voice mode to ask for a complete bold redesign; while that ran he opened a second branch and voice-prompted a backend CRM with an analytics dashboard covering bookings, booker location and locals-versus-tourists. In parallel he changed main — regenerating the hero video into a four-to-six-second looping sunset wave scene and rewriting content below the hero — specifically so he could demonstrate the sync path. Inside a branch the Publish button becomes Merge to main, and a branch that has fallen behind must first be brought up to date via the Update branch button in the chat. Updating the redesign branch produced a live conflict question asking which version to keep, which Sam initially misread and then corrected on air: the question is about what the branch preview keeps, not what main keeps. The CRM branch updated cleanly with a checkmark and no conflict prompt, and merging it produced a summary note in chat reading "added a CRM dashboard CRM with eight KPI statistics and four data visualizations." He declined to merge the redesign branch and showed that a merge can be undone through version history's revert-to-this-version.

The reason it matters came through in the caveats and use cases rather than the mechanics. Data is the one thing branches do not isolate — every branch writes to the live database unless the per-branch test data toggle in data settings is on. Only one prompt can run in one branch at a time, there is no branch limit, there is no delete yet, backend functions are not in branches yet, apps built with Base44 BaaS are excluded, and the app must be disconnected from GitHub. Sam's central pitch was that branches remove the need to revert: he described binning roughly 100 prompts of work on a Pokemon-card raffle system in his own app because it did not fit the brand, and argued branches also curb the bloat behind slowdowns reported by users whose apps have reached hundreds of thousands of lines of code and multiple thousand backend functions. His strongest scenario was partner-to-client work — a partner building a CRM in a branch for six days can pause, let the owner hot-fix and publish a critical bug in main, then pull main into the branch and carry on without losing anything.

Called out on the rail

Ten things said out loud.

The release and its exclusions, tomorrow's guest hosts, the Launchpad prize, and two teasers that were deliberately vague.

Scroll-scrubbed switching yard

One line, two lanes, one direction of travel.

Sam ran both branches live on a surf school app. Only one of them ever came back.

  1. 01 / Peel off

    Create a branch.

    Left-click the app name, top left. Branches, then create. A new preview window and a new builder conversation open alongside production.

  2. 02 / Main moves on

    Production keeps shipping.

    Sam regenerated the hero video into a looping sunset wave and rewrote the copy below it — in main, deliberately, while both branches were open.

  3. 03 / Counter-flow

    Update branch first.

    Main flows into the branch. Where it conflicts, the builder asks which version to keep — and that question is about the branch preview, never about main.

  4. 04 / Fold back

    Merge to main.

    Inside a branch the Publish button reads Merge to main. Press it and the two paths collapse into one, with a written summary in chat.

  • Main — the production line
  • Branch — peels off, may fold back
  • Update — main flowing into a branch
  1. 01 / Peel off

    Create a branch.

    Left-click the app name, top left. Branches, then create. A new preview window and a new builder conversation open alongside production.

  2. 02 / Main moves on

    Production keeps shipping.

    Sam regenerated the hero video into a looping sunset wave and rewrote the copy below it — in main, deliberately, while both branches were open.

  3. 03 / Counter-flow

    Update branch first.

    Main flows into the branch. Where it conflicts, the builder asks which version to keep — and that question is about the branch preview, never about main.

  4. 04 / Fold back

    Merge to main.

    Inside a branch the Publish button reads Merge to main. Press it and the two paths collapse into one, with a written summary in chat.

The one thing branches do not isolate

Every lane writes to the same database.

Sam's own words: nothing you do in a branch touches production — except, and the caveat to that is, data.

The toggle is per branch, not per app

The test data button lives in the data area’s settings and is instanced to the branch you are standing in. You can run one branch on test data while main is not, and Sam’s example was three branches each holding a different test data version.

Leave it off and you are live

His explicit warning: leaving this off means every branch uses the current database tables. A rebrand branch and a CRM branch are both writing real rows into the app your users are already on.

Frozen production data does not exist yet

Asked for a test data snapshot of production locked at a point in time, Sam said it was a good idea and would go back to the team. He later flagged it as step one before a branch could ever be published for testers.

Stubs off the rail

Seven lines that go nowhere.

Check these before you plan a workflow around branches. Every one was stated on air; none came with a date.

Field notes from the demo

Sixteen things worth keeping.

What a branch is, how to find one, what merging really does, and the two stories Sam built the whole explanation around.

Full session

Watch the yard run live.

The demo app was one-prompted minutes before the stream, so the branches go in early. The CRM merge, the conflict question Sam misread and then corrected on air, and the version-history revert all happen inside the hour.

Open on YouTube (opens in a new tab)

28 answered questions

Everything the room asked on day zero.

Grouped by category. Featured answers settle a rule of the feature rather than a detail of the demo.

General1

Technical15

  • Can you merge a feature branch into another release branch, and then merge that release branch into main?

    Not right now. Sam understood the request — chaining several branches into one collapsed branch and then merging that single result into main — but said the current implementation does not support branch-to-branch merging. He called it a great suggestion and added it to the list going back to the dev team.

  • Can applications built with Base44 BaaS (backend-as-a-service) use branches?

    No. Applications built with BaaS on Base44 do not have access to branches at this stage. The feature is for prompted builds from the builder only. Sam restated this in his closing recap: the branch entry point exists on any application that is not a BaaS app.

  • How do you get back to the original main as it was before a merge?

    Through version history. Go to version history, find the version you were happy with — in the demo, the one without the CRM — press the three dots on it and choose revert to this version.

  • Can you merge several branches?

    Yes, but one at a time rather than simultaneously. You merge the first branch, then go to the next branch, press update so it pulls in the newly-merged production state, and merge that one. Sam confirmed that if you have six branches queued up to merge in a row, that sequence works.

  • If you do not connect GitHub and use branches instead, could you still edit your code locally and push it?

    No. Sam's answer was that branches are the native, in-platform solution rather than a bridge to local development — the isolated single-user case is where the feature shines, letting you treat your app as a playground rather than giving you a local code path.

  • Can a super agent read the files in one of your client's apps and then work on a new app you have created?

    Your super agent can only read your own apps. If the client app was built by you and sits in your workspace, then yes, it can read that app and then work on a new app you have created. Sam noted the question was hard to parse and asked for clarification, so this answer covers the interpretation he gave on air.

  • Can you build apps with Opus 5 and Fable 5 right now?

    Yes. Sam noted that he had been unable to do so during the previous day's stream, but had no problem with it on the day of this session — suggesting the earlier failure was transient.

  • Can you make a Base44 app work offline?

    No. "You're always bound to it being a web app."

  • What were the two npm packages behind the sideways scrolling in the demo app?

    Lenis and GSAP. Sam recommended installing both on any build where design matters: the smooth scrolling effect on its own is Lenis, but combining it with GSAP also gives much cleaner transitions on navigation. He pointed to his one-prompt prompt-writing app, built during the previous day's session, which bakes that knowledge and a set of design principles into the prompt it generates for you.

  • Why use branches when you could just make a copy of the app and work that way?

    Copying is one way, though Sam said he had never done it. The more common existing approach is RLS: build the feature, lock its visuals and access point to admin only, then toggle it on from an admin control panel. Branches are "a way more smooth, less bulk" alternative, and they also help with app bloat — since features only enter the main codebase if they are actually going to be used, which matters for the users reporting slowdowns on apps that have reached hundreds of thousands of lines of code and multiple thousand backend functions.

Product11

  • Do branches sync with GitHub?

    Not currently. Sam's answer was direct: "Not currently. You can't be connected to GitHub and have this work at the same time." On whether syncing is planned, he was honest that he did not know: "I don't know if there's a plan to work on that. I'm not sure. Sorry. It's a question for the team for sure." The intent behind branches, he said, is that this is a native solution — you should not need the GitHub route for it.

  • Can you get a version of test data that is a snapshot of production data frozen at a point in time?

    Not available today. Sam confirmed he understood the request — "a version of test data with production data locked in time" — said he thought it was a good idea and would put it back to the team. He later returned to it, noting that this frozen cut of live data would be step one before anything like publishing a branch for testers could work.

  • Could you let people test a branch as a published version?

    Not possible now, and not ruled out. Sam could see it being added somewhere in the branch menu — perhaps a right-click or a three-dots option to publish that version — but flagged the obstacle: "it would get confusing with data." He said it is "certainly not off the cards," and that the prerequisite would be having frozen-in-time cuts of live data first.

  • Is there a limit on how many branches you can create?

    No. "You can have as many branches as you want. There is no limit. You can spin up as many as you'd like." The only limit is on concurrent work: one conversation in one branch at one time.

  • Are super agents branch-aware? Can a super agent send prompts to branches or create them?

    Unanswered on the day. Sam called it a great question, said he did not know, and asked for it to be written down and taken back to the dev team — noting that if agents can do one branch operation they can probably do all of them. Attendees ran live tests during the session and the readout Sam gave from those tests suggested it was not working, but the transcript is ambiguous on the result. He agreed with the point raised in chat that "the agent having the ability to manage branches will be a dramatic improvement in speed to deploy multiple features."

  • Are branches replacing reverting, or merging with it — or are they completely separate things?

    Separate things. Branches do not replace version history or reverting; they simply mean "reverting is something you'll need to do less." The scenario branches remove is the one where you build a large speculative feature, decide against it, and have to revert away all that work.

  • Would you recommend creating a branch to build a website and then connecting it to the app created in the first branch?

    No, and it is not needed at all. Sam read the question as being about a landing page and said you never need two apps for this. Base44 builds React web apps, and the website-versus-app distinction is a misnomer — the same app can carry a website-style front end. Just prompt the builder: build me a landing page for this application, it needs to be accessible by non-logged-in users, and the rest of the app needs to be gated behind login and authentication. He added that you may still want to do that work in a branch for a different reason — so an unfinished landing page can sit there for a week while you get distracted by something else, without the work being wasted or needing a revert.

  • Can you merge two apps together on Base44?

    No. "You can't merge apps on Base44." Merging applies to branches within a single app, not across separate applications.

  • Will Opus 4.8 or Fable 5 be available for in-app agents any time soon?

    Sam did not know, and framed it as a cost question rather than a technical one. If in-app agents and super agents always had access to the expensive models by default, "you'd lose quite a lot of users at just the sheer cost of it," since Fable is far more expensive than any other model. His speculation — explicitly not a commitment — was that it might arrive as an optional add-on you could flag on, rather than something included in the default bundle.

Community1

  • There was a session last week about using super agents in an app — are past sessions recorded and available somewhere?

    Yes. Sam confirmed all sessions are recorded and available, and shared the link with the attendee in chat during the stream. He made the same point when someone said they had joined late: the sessions stream to YouTube simultaneously, so you can rewind or watch the replay.

Carry these out

Before you spin up your first branch.

  1. Open Branches from the top-left app name in the builder — the entry point is hidden on purpose because this is a day-zero open beta, and it will not appear anywhere you would stumble across it.

  2. Turn on the test data toggle in your data settings inside each branch before you do anything data-related. It is scoped per branch, and without it every branch you create is writing to your live production database.

  3. Press Update branch to pull main into your branch before merging — you cannot merge without it, and this is where conflict questions appear. When asked which version to keep, remember it is asking what the BRANCH keeps, not what main keeps; picking main can wipe out the branch's work.

  4. Plan around one generation at a time. Branch count is unlimited, but only one prompt can run in one branch at a time, so sequence your prompts across branches rather than firing them in parallel.

  5. Check the exclusions before you plan a workflow: disconnect from GitHub first, BaaS-built apps have no access, backend functions do not exist in branches yet, there is no delete, and you cannot merge one branch into another or publish a branch separately.

  6. Move speculative work — rebrands, seasonal themes, features you are unsure about — into branches instead of building them in main and reverting later. This is also the recommended defence against the bloat behind slowdowns on apps at hundreds of thousands of lines of code and multiple thousand backend functions.

  7. For partner and client work, agree the pause-fix-sync pattern up front: partner pauses the branch, owner hot-fixes and publishes main, partner pulls main into the branch and continues. Nobody's work gets blocked or lost waiting for the other side.

  8. If a merge turns out badly, go to version history, press the three dots on the version you were happy with, and revert to it — merging is not a one-way door.

  9. Install Lenis and GSAP together on design-led builds: Lenis alone gives the smooth scroll, and adding GSAP gives noticeably cleaner navigation transitions.