
Work on several branches alongside your main app
Ways to use a branch
- Test a redesign. Try a new look for your app and compare it with the current version. If you change your mind, leave the branch behind.
- Keep your live app ready. When a small fix comes up mid-project, fix and publish it from main right away. Your bigger work in progress stays safely on its branch.
- Build a feature that launches later. Work ahead of a release and keep the feature on a branch until launch day.
- Work in parallel. Build on several branches at the same time, and work with your team on different ideas at once, each on their own branch.
How branches work
Your app’s main version is called main. When you create a branch, Base44 starts a separate line of work from the current state of main. Each branch keeps its own chat, live preview, and copy of your app’s design and pages, so changes you make stay on the branch until you merge them. A branch also builds on its own and keeps its own version history, so branches run in parallel and you can return to any earlier point without touching main. Some things stay shared across main and every branch. Your app’s data is the same live records everywhere, and record changes happen on main. Your connections and automation, including integrations, secrets, automations, workflows, and in-app agents, are shared too, along with your app’s settings, domains, and published version.Creating a branch
Describe what you want to build, and Base44 creates the branch, names it from your first message, and starts building right away. Branch names are short, 3 words or fewer, and always in English, whatever language you write in. The name is set automatically, and a branch cannot be renamed.Starting a new branch
Start a branch from the branch menu when you have a new idea to build. To create a branch:- Click Main, or the name of the branch you’re on, next to your app’s name at the top of the chat panel in the app editor.
- Click Create new branch.
- Pick one of the suggestions, or type what you want to build in the chat box.
- Send the message.

Creating your first branch from the branch menu
Creating a private branch
If you’re an approved Base44 partner building an app for a client, you can make a branch private when you create it. A private branch and its chat are visible only to you, so the client and their other collaborators don’t see your work in progress. It shows a lock next to its name in your branch menu. When you merge it, your changes appear on main for everyone as usual.- Set when you create it: You choose whether a branch is private when you create it, and you can’t change it later.
- When you lose access: If you’re removed from the client’s app, your private branches are deleted.
- Imported apps: Private branches aren’t available on apps imported from GitHub.
- Click Main, or the name of the branch you’re on, next to your app’s name at the top of the chat panel in the app editor.
- Click Create new branch.
- Select Private branch above the chat box.
- Pick one of the suggestions, or type what you want to build in the chat box.
- Send the message.

Selecting Private branch before you send your first message
Branching from a message
Branch from any message you sent in the main chat to try a different direction from that point. The new branch starts from your app as it was at that message, and you stay on main while it is created. This option is available on main in a desktop browser, but not while your app is building. To branch from a message:- Hover over a message you sent in the main chat of your app editor.
-
Click the Branch from here icon under it.

The Branch from here icon under a message you sent
- When the branch is ready, open it from the branch menu at the top of the chat panel.
Branching a queued prompt
When the AI is busy building on main, you can move a waiting prompt from the queue to its own branch, so it runs at the same time instead of waiting its turn. The branch starts from your last saved version, without the changes that are still building, so this works best for changes that do not depend on what is building now. This option is available on main in a desktop browser, on apps you build on your own. Apps with collaborators use a shared queue, which does not offer it. To run a queued prompt on a branch:- Click the Run in a parallel branch icon on the queued prompt you want to move, in the queue above the chat input in your app editor.
- Click Run on a branch, or click Keep in queue to leave it where it is.
- Click Open branch in the chat to follow the prompt on its new branch.
Importing from GitHub
When your app is connected to GitHub, you can build on a branch that already exists in your repository. Base44 works on that branch itself, so your changes and Base44’s go to the same branch in your repository. To import a branch from GitHub:- Click Main, or the name of the branch you’re on, next to your app’s name at the top of the chat panel in the app editor.
- Click Import from GitHub.
- Search for the branch you want, then select it.
- Click Import.
Working on a branch
While you are on a branch, the branch’s name replaces your app’s name at the top of the chat panel, and a spinning icon shows when the AI is working. You build on a branch the same way you build on main: describe what you want in the chat. Selecting an element and making a visual edit saves to the branch you are on too, the same as your chat changes. A few things work differently on a branch:- Merge to main replaces the Publish button. You publish changes from main after merging.
- The preview shows the branch’s version of your app.
- The page URL includes the branch, so you can share a link that opens the app editor on that branch.

Working on a branch, with Merge to main in place of Publish
Switching branches
You can move between main and your branches at any time, and every branch keeps its changes until you merge it. On a branch, you can also click the X next to Merge to main to exit back to main. The icon next to each branch shows its current status. Hover over the icon to see the label:- Click the branch name at the top of the chat panel in your app editor.
- Select a branch from the list, or select Main chat to return to main.

Switching between main and your branches
Joining a collaborator’s branch
When you work on an app with others, the avatars at the top of the app editor show which branch each person is on. You can jump straight to a collaborator’s branch, and when someone joins the branch you are on, Base44 shows a short message saying they joined your branch. To join a collaborator’s branch:-
Hover over a collaborator’s avatar at the top of the app editor to see their name and branch.

A collaborator's avatar showing which branch they are on
- Click the avatar to open the branch they are on.
What stays on main
You do most of your building on a branch, but some actions affect your whole app, not just one branch. Those always happen on main, even while you are working on a branch:- Publishing your app
- Creating or changing secrets, connectors, automations, workflows, and in-app agents
- Changing your app’s theme settings
- Undoing a message in the chat, or editing and resending one
- Adding a page from Figma
- Asking the AI to add, change, delete, or import records
Entities
You can create entities and add fields to entities you already have on a branch, and both are live in that branch’s own preview right away. On an entity you create, you set everything, including its data permissions. On an entity that already exists, additions apply, so keep a new field optional, because your existing records do not have it yet. Removing an entity or a field, changing an existing field’s type or whether it is required, and changing data permissions happen on main. Make the change there and your branch picks it up right away, with no merge or update needed. Records are your app’s live data, shared with main, so ask the AI for record changes on main rather than on a branch. Adding, changing, or deleting records yourself while previewing a branch works as it always does, and it changes the same data your app uses everywhere.Backend functions
You can add and change backend functions on a branch. The branch gets its own copy of each function you touch, along with the shared files those functions import, so you can update a helper and the function that uses it together. The branch preview calls the branch’s version, and merging the branch deploys it to main. Your app’s first backend function is created on main, and you can work on functions from a branch after that. On an app imported from GitHub, backend changes stay on main.Code
The Code tab shows your app’s files as they are on the branch you are on, rather than as they are on main. You can edit them there, and what you save stays in the branch until you merge it. The files behind your app’s pages, layout, and styling save straight to the branch, so you can try a code change and leave main untouched. Backend function files save to the branch too. See backend functions on a branch for when a change is live in the branch’s preview and when it waits for the merge. You do not need to keep track of which is which. A few files change your whole app rather than one branch, and Base44 stops the save and tells you where to go instead:- Entity files: Ask for the change in the branch’s chat, or switch to main. See entities on a branch for what a branch can change on its own.
- Anything that would change your live app: Make the change on main, and your branch picks it up with no merge needed.

The Code tab on a branch, showing that branch's own files
- It happens on main: When you edit a backend function on main, you save it with Save & Redeploy. On a branch, the button is Save, so switch to main to redeploy a function.
- Your live app keeps its published version: Redeploying updates the function in your preview and when you test it in the editor. Your live app keeps running the version from your last publish until you publish again.
- Publishing sends everything on main live: You can’t publish one function on its own. When you publish, all your changes on main go live together, including the redeployed function.
- Automations and workflows use the new version right away: When an automation or workflow calls the function, it runs the latest version without a publish.
Using version history
Every version saved on a branch is listed in that branch’s own version history, so you can look back at how the branch developed, compare it with main, and return to any earlier point.Restoring a version
Restoring a version changes that branch only, and main stays exactly as it is. It brings the branch’s pages, design, entities, and backend functions back to that version, and the branch’s chat returns to the message that created it. Your records are shared with main, so they stay as they are. Your later versions stay in the list, so you can move forward again whenever you want. A merged branch keeps its version history readable, and you can restore while a branch is still active. To restore an earlier version of a branch:- Click the Version History icon at the top of the chat panel while you are on the branch.
- Click a version in the list to load it in the preview.
- Click the More options icon next to that version.
- Click Revert to this version.

Restoring an earlier version of a branch
- Publish this version is available on main only, because publishing always ships your main app. To release work from a branch, merge it into main and publish from there.
- Restore a version once the branch has finished building and any update from main is complete. If the branch is busy, Base44 tells you so, and you can restore as soon as it finishes.
Comparing with main
Before you merge, you can check exactly how a version’s code differs from main. Base44 opens a Changes compared with main window that lists every file that differs and what changed in each one. To compare a branch version with main:- Click the Version History icon at the top of the chat panel while you are on the branch.
- Click the More options icon next to the version you want to compare.
-
Click Compare code vs main.

Comparing a branch version with main
-
Click a file in the list to see what changed in it.

The Changes compared with main window
Updating from main
If main changes while your branch is open, a card appears above the chat box on the branch. It tells you how much changed on main and whether any of it overlaps with your branch. When you update, the AI combines main’s changes with your branch. If some changes overlap, the AI resolves them for you. If the 2 versions genuinely conflict, the AI asks you a question in the chat so you can decide what to keep. To bring main’s latest changes into your branch:- On the branch, find the update card above the chat box.
- Click Update branch.

The update card that appears above the chat box when main has changed
Merging into main
Merging brings everything you built on the branch into main. Your changes reach your app’s users only when you publish from main, so you decide exactly what goes out and when. After the merge, a summary of the branch’s changes appears in main’s chat, and the branch stays in your branch list as merged, so you can still read its chat history, but it becomes read-only. When you open a merged branch, a notice explains it’s read-only, its preview shows main as it is now, and Open main chat takes you back to main. To merge a branch:- On the branch, click Merge to main at the top of the editor.
- Review the confirmation, then click Merge to main.

Click Merge to main at the top of the editor, then publish from main when you are ready
Deleting a branch
Delete a branch when you are done with an idea and want to clear it from your list. Your app and your other branches stay as they are. To delete a branch:- Click the branch name at the top of the chat panel.
- Click the More actions icon next to the branch you want to delete.
- Click Delete.
- Review the confirmation, then click Delete branch.

Opening the More actions menu on a branch
FAQs
Click a question below to learn more about branches.Can I publish my app from a branch?
Can I publish my app from a branch?
How many branches can I have?
How many branches can I have?
Can my team and I work on different branches at the same time?
Can my team and I work on different branches at the same time?
Do branches use extra credits?
Do branches use extra credits?
Can I use branches on an app connected to GitHub?
Can I use branches on an app connected to GitHub?
Can I connect my app to GitHub while I have branches?
Can I connect my app to GitHub while I have branches?
Can I use branches on an app I migrated into Base44?
Can I use branches on an app I migrated into Base44?