How to export your code from Base44
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.
8 min read
You can export Base44 code three ways: download a ZIP, sync it to a GitHub repository, or eject it with the Base44 CLI. ZIP and GitHub need the Builder plan or higher. All three give you a standard React and Vite project. None of them export your data, and the code keeps calling your app’s Base44 backend until you replace it.
Exporting is the first step in any Base44 migration. Here’s how each method works.
Option 1: download a ZIP
The quickest way to get a copy. From Base44’s docs:
- Open your app in the editor.
- Click the More actions icon in the top bar and select Export project as ZIP.
Or open the Code tab and click the Export project as ZIP icon at the top right of the code view.
A ZIP is a snapshot. It won’t update when you keep building, so re-export whenever you want a fresh copy, or use GitHub sync instead.
Option 2: sync to GitHub
GitHub two-way sync (Builder plan) creates a repository and keeps it current: every change you make in Base44 is pushed automatically, and changes merged into main on GitHub come back to Base44. It’s the best option if you want an always-current copy or plan to edit locally. The GitHub integration guide covers setup and its rules, including one that catches people out: once connected, you can’t restore versions from before the connection.
Option 3: eject with the CLI
base44 eject “clones an existing Base44 app into a separate local project.” It downloads the frontend code, the entity schemas and other backend resources, then creates a new backend project with its own app ID. From the CLI docs:
npm install -g base44@latest # needs Node.js 20.19.0 or higher
base44 login
base44 eject # pick the app interactively
# or, non-interactively:
base44 eject --app-id <your-app-id> --path ./my-ejected-app --yes
Your app ID is in the editor URL: app.base44.com/apps/<app-id>/editor.
What’s in the export
Per Base44’s project structure docs, “Base44 apps are standard React apps built with Vite.” A typical export:
src/
pages/ # one file per route: Home.jsx becomes /, Settings.jsx becomes /settings
components/ # reusable UI; components/ui holds pre-built components
api/ # Base44 SDK client configuration
hooks/ # custom React hooks
lib/ # Base44 integration and app configuration
utils/ # helpers
entities/ # JSON schema per data type (not in the repo under GitHub two-way sync)
functions/ # backend functions, one TypeScript file each
package.json # includes @base44/sdk
vite.config.js # includes the Base44 Vite plugin
tailwind.config.js
index.html
To run it: npm install, then npm run dev.
What the export doesn’t include
| Not in the code export | Where it lives | How to get it |
|---|---|---|
| Your records | Base44’s database | CSV per table from the Data page |
| User accounts | Base44 authentication | Export the User table; Base44 documents no password export |
| Uploaded files | Base44 media storage | Download from the URLs in your data |
| Secrets and API keys | Base44’s encrypted vault | Copy them from your providers again |
| Built-in integrations | Base44’s servers | Replace with your own providers |
| Hosting, redirects, SEO pre-rendering | Base44’s platform | Recreate at your new host |
The data export guide covers the first three.
How much of your app depends on Base44
Search the export for SDK calls to see what you’d have to replace to run independently:
grep -rhoE 'base44\.(entities|auth|integrations|functions|agents)\.[A-Za-z]+' src | sort | uniq -c | sort -rn | head -30
Calls to base44.entities.* are your database. base44.auth.* is login. base44.integrations.Core.* is built-in email, LLM calls, file uploads and similar. Each has to point at a new service before the app stands on its own. The Supabase migration guide shows the replacements.
What to do next
- If you’re on the Builder plan, connect GitHub now. It’s a continuously updated export.
- Export your data to CSV and keep it with the code.
- Run the exported app locally to confirm it builds, using the local development guide.
Frequently asked questions
- Can I export Base44 code on the free plan?
- Not as a ZIP or to GitHub. Base44's docs say both require the Builder plan or higher. You can view and copy files in the Code tab on paid plans, and the Base44 CLI offers other routes for developers.
- What's included when I export a Base44 app?
- The React and Vite frontend: pages, components, the SDK client configuration, hooks, utilities and config files such as package.json, vite.config.js and index.html. The CLI's eject command also copies entity schemas and backend resources. Your data is not included in any code export.
- Does exported Base44 code work without Base44?
- It builds and runs as a React app, but it still uses the Base44 SDK to reach your app's backend for data, login and integrations. To run completely independently, replace those SDK calls with your own backend.
- How do I export my Base44 database?
- Separately from the code. Open the Data page in the app editor and export each table to CSV. The CLI's eject copies entity schemas but leaves the new project's database empty.
Read next
Keep going
-
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.
-
Base44 GitHub integration: how two-way sync works
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.
-
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.
-
Exporting your Base44 data, users and files
Export Base44 data table by table to CSV, get your entity schemas and users out, download uploaded files, and use backups and recently deleted records.