
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. To create a branch:- In the app editor, click your app’s logo or name at the top of the chat panel.
- 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
Importing a branch 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:- In the app editor, click your app’s logo or name at the top of the chat panel.
- 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.
Actions that happen 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
- Editing code directly in the code editor
- 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 on a branch
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 on a branch
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. If your app cannot do this yet, Base44 asks you to make backend changes on main.Using version history on a branch
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 and return to any earlier point. Restoring a version changes that branch only, and main stays exactly as it is. 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:- On the branch, click the Version history icon at the top of the chat panel.
- 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.
- 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.
Switching between 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. To switch to another branch or back to main:- Click the branch name at the top of the chat panel.
- Select a branch from the list, or select Main chat to return to main.

Switching between main and your branches
Updating a branch with changes 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 two 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 a branch 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. 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?