Base44 GitHub integration: setup, two-way sync and its rules
How to connect a Base44 app to GitHub, how two-way sync behaves, the rules that catch people out, and how Base44's GitHub import works for existing repositories.
8 min read
Base44’s GitHub integration keeps a repository in sync with your app in both directions: whatever you or the AI changes in Base44 is pushed to GitHub automatically, and whatever you merge into main comes back to Base44. It needs the Builder plan, and it has a few rules worth knowing before you connect, especially that you can’t restore versions from before the connection.
GitHub sync is the lightest step in a Base44 migration, and for most people the only one they need.
Connect an app to GitHub
From Base44’s GitHub integration docs:
- In your app editor, click Dashboard.
- Click the GitHub icon at the top right, then Connect to GitHub.
- Click Connect GitHub, then Authorize Base44 Builder.
- Choose where to install the Base44 Builder GitHub app: your account or an organization, and which repositories it can access.
- Click Install.
- Create a repository for the app: pick the account or organization, enter a name, click Create Repository.
Afterwards, the GitHub icon’s Go to Repository link takes you there.
How the sync behaves
- Base44 to GitHub is automatic. “When you connect your app to GitHub, your changes are synced to the connected repository automatically. There’s no option to manually push updates.”
- GitHub to Base44 happens on
main. Merge your changes into the main branch and they appear in Base44. The branch has to be calledmain;masterand other names “currently aren’t supported.” - Publishing is still manual. Synced changes show in the editor. Click Publish to put them live.
- Commits carry your identity. Since a 2026 update, commits made through the integration list your GitHub account as a co-author.
- You approve writes. Base44’s AI chat now asks for your approval before writing files to a connected repository.
- Conflicts can be resolved in Base44. When a sync hits a merge conflict, the AI chat offers a Resolve option that reworks each conflicted file and pushes the merge.
What’s in the repository, and what isn’t
The repo holds the React and Vite frontend: src/pages, src/components, the SDK client in src/api, config files and index.html. With two-way sync, “entities are managed in Base44 and are not included in your local repository.” Your data isn’t in it either. To get schemas locally, use the CLI (base44 eject or base44 scaffold); to get data, export tables to CSV from the Data page.
Working on the code locally
Once connected, clone and run it (the docs’ steps):
git clone git@github.com:you/your-app.git && cd your-app
npm install
npm install -g base44@latest # Base44 CLI, Node.js 20.19.0+
base44 login
base44 link # links this clone to its app; the pointer file is gitignored
base44 dev # local backend + frontend dev server
base44 dev --remote runs only the frontend against your live backend. The docs warn that “in remote mode, writes go to your live app’s production data.” More in the local development guide.
Merge to main to send your changes back, then publish in Base44.
Collaborators and disconnecting
Invite teammates from the GitHub panel’s Invite Collaborator tab with their GitHub username. To stop syncing, disconnect the repository from the same panel. The sync can’t be paused, so the only states are connected and disconnected. An app that was disconnected can later reconnect to the same repository, and Base44 compares the commit histories to decide which way to sync.
If you set up GitHub before two-way sync existed, you may have the older one-way export. The GitHub panel has a Looking for the old setup? link to disconnect it and reconnect with two-way sync.
Importing an existing repository into Base44
Base44 also works the other way round. You can connect a repository you already have, and Base44 runs it in the cloud so you and your team can change it through the AI chat. From the import docs:
- From the Base44 home page, click the + icon in the prompt box.
- Click Connect your repo and connect your GitHub account if needed.
- Pick the repository and a starting branch, then click Connect.
The repository “must be a web or full-stack app that can be built and run from source in Docker.” Changes are saved to a branch and sent back as pull requests, so the repository stays the source of truth. Imported apps follow AGENTS.md files in the repo, and get an Infrastructure page showing their services and database health.
What to do next
- Restore any pre-connection version you might want, then connect GitHub.
- Clone the repo and confirm it builds.
- If you’d like to edit with Claude Code or Cursor, read using AI coding agents with Base44.
Frequently asked questions
- Does Base44 GitHub sync work both ways?
- Yes. Changes made in Base44 are pushed to the connected repository automatically, and changes merged into the repository's main branch sync back to Base44. You still click Publish in Base44 to make synced changes live.
- Which plan do I need for Base44 GitHub integration?
- GitHub two-way sync requires the Builder plan or higher, and only an app owner can make the first connection to a repository.
- Can I use a branch other than main with Base44?
- Changes sync back to Base44 when they're merged into the main branch, and Base44's docs say it must be named main. Other default branch names, such as master, aren't currently supported.
- Are my Base44 entities in the GitHub repository?
- No. With two-way sync, entities are managed in Base44 and aren't included in your local repository. Use the Base44 CLI or the Data page for entity schemas and records.
- Can I import an existing GitHub project into Base44?
- Yes. From the Base44 home page, click the plus icon in the prompt box and choose Connect your repo. Base44 clones the code, runs it in a cloud environment, and sends your changes back to the repository as pull requests.
Read next
Keep going
-
How to export your Base44 code (ZIP, GitHub or CLI)
Three ways to export Base44 code: download a ZIP, sync to GitHub, or eject with the CLI. What each includes, which plan you need, and what the export can't take with it.
-
Running a Base44 app locally with the Base44 CLI
Run a Base44 app on your own machine: clone from GitHub or eject with the CLI, link it, and use base44 dev. What runs locally, what's forwarded, and the remote-mode trap.
-
Using Claude Code, Cursor or Codex with a Base44 app
Three ways to bring Claude Code, Cursor or Codex to Base44: GitHub sync, the app's cloud sandbox via the CLI, or the Base44 MCP server. Plans, setup and trade-offs.
-
Leaving or extending Base44: the export and migration guide
What you can take out of Base44 and what stays: exporting code, GitHub sync, data export, and migrating the backend to Supabase or your own hosting, step by step.