Moving a Base44 app: export, sync, self-host or migrate
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.
11 min read
Everything you build on Base44 can leave in pieces. The frontend is a standard React and Vite app you can export as a ZIP or sync to GitHub on the Builder plan. Your data exports table by table to CSV. What doesn’t come out as-is is the backend: Base44’s database, user accounts, built-in integrations and function hosting. How much work a move takes depends on how much of that backend your app leans on.
This guide maps the options, from light (sync to GitHub and keep building on Base44) to full (move to Supabase and your own hosting), and links to a step-by-step guide for each.
What a Base44 app is made of
Knowing the parts tells you what moves easily.
| Part | What it is on Base44 | Can you export it? |
|---|---|---|
| Frontend | React + Vite app, pages in src/pages | Yes: ZIP, GitHub or CLI |
| Entity schemas | JSON schema files, one per data type | Yes: CLI eject copies them |
| Data | Records in Base44’s database | Yes: CSV per table |
| Users and login | Base44 authentication | User records yes; no documented password export |
| Backend functions | Deno TypeScript functions | Yes, as code; they rely on Base44’s runtime |
| Built-in integrations | SendEmail, InvokeLLM, UploadFile and others | No: replace with your own providers |
| Files | Uploaded media on Base44’s storage | Download them yourself |
| Hosting | Base44 serves the app and handles SEO pre-rendering | No: you host it |
The frontend talks to everything else through the Base44 SDK (@base44/sdk). Calls like base44.entities.Product.list() and base44.integrations.Core.SendEmail() are where the lock-in actually sits.
Level 1: back up and work in your own editor
You keep building on Base44, with a copy of the code in GitHub and the option to edit it in Cursor, Claude Code or VS Code.
- GitHub two-way sync (Builder plan): every change on Base44 pushes to your repo, and changes merged to
maincome back. See the GitHub integration guide. - Bring your own agent (Builder plan): connect Claude Code, Cursor or Codex straight to your app’s cloud sandbox with the Base44 CLI or MCP server. See using Claude Code and Cursor with Base44.
This is the right stopping point for most people. You get version control and a real code editor without taking on hosting or a backend.
Level 2: take a full copy
- Export the code as a ZIP from More actions → Export project as ZIP (Builder plan). See how to export your Base44 code.
- Export your data to CSV from the Data page. See exporting Base44 data.
- Eject with the CLI:
base44 ejectdownloads the frontend, entity schemas and backend resources into a new project with a new app ID and an empty database. See running a Base44 app locally.
A copy protects you if Base44 changes pricing or your account has a problem. It doesn’t run on its own yet.
Level 3: host the frontend yourself
The exported frontend builds like any Vite app (npm install, npm run build) and can be deployed to Vercel, Netlify or Cloudflare. It keeps calling your Base44 backend through the SDK, so your data, login and integrations still live on Base44. The self-hosting guide covers the build, the settings and what to test, including login flows and the SEO pre-rendering you give up by leaving Base44’s hosting.
Level 4: replace the backend
This is the real migration. You swap Base44’s database, auth, file storage and built-in integrations for your own, usually Supabase plus an email provider and an AI API. It’s a rewrite of the data layer:
- Recreate your entities as database tables.
- Import the CSV data.
- Move users (user records come over; plan on password resets, since Base44 documents no way to export password hashes).
- Replace every
base44.entities.*,base44.auth.*andbase44.integrations.*call. - Port backend functions (Supabase Edge Functions also run on Deno, which helps).
- Download files and re-upload them.
The Base44 to Supabase guide walks through each step.
What you give up when you leave Base44 hosting
Two things are easy to forget.
- SEO pre-rendering. On Base44, recognized crawlers get a pre-rendered copy of each page. A self-hosted React app serves an empty shell to crawlers that don’t run JavaScript until you add pre-rendering or move to a framework with server rendering. Plan for it before you switch DNS.
- Redirects and domain settings. Base44’s 301 redirects,
wwwhandling and email domain setup stay behind. Recreate them at your new host.
Coming the other way
Base44 also imports projects. It can migrate entities, data and frontend code from Lovable and Bolt.new, and data from Salesforce, HubSpot, Shopify and WordPress, importing 100 items per entity first so you can preview before committing. It can also connect an existing GitHub repository and run it in Base44’s cloud. See Base44 vs Lovable if you’re weighing the two.
What to do next
- Connect GitHub, even if you never plan to leave. It’s the cheapest insurance.
- Export your data to CSV and store it somewhere you control.
- If you’re considering a full move, run the SDK count above and read the Supabase migration guide before committing.
Frequently asked questions
- Can I take my app out of Base44?
- Yes. On the Builder plan you can export the frontend code as a ZIP or sync it to GitHub, and the CLI's eject command copies the code plus entity schemas into a new project. Your data exports to CSV. What doesn't come with you is Base44's backend: authentication, the database, built-in integrations and backend-function hosting.
- Does exported Base44 code run on its own?
- The frontend builds and runs as a standard React and Vite app, but it still calls your app's Base44 backend through the Base44 SDK. To run fully independently you have to replace those calls with your own backend, such as Supabase.
- Is Base44 lock-in a real problem?
- For the frontend, no: it's standard React code you can export. For the backend, somewhat: entities, auth, built-in integrations like SendEmail and InvokeLLM, and backend functions all run on Base44. Moving them is a rewrite of the data layer, which is manageable for small apps and real work for large ones.
- Which Base44 plan do I need to export?
- Downloading a ZIP and connecting GitHub both require the Builder plan or higher. Data exports separately, table by table, to CSV from the Data page.
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.
-
How to migrate a Base44 app to Supabase
Move a Base44 app to Supabase: turn entities into tables, import the data, move users, replace Base44 SDK calls, and port backend functions and integrations.
-
Self-hosting a Base44 app on Vercel, Netlify or Cloudflare
Build an exported Base44 app and deploy it to Vercel, Netlify or Cloudflare. What keeps working on Base44's backend, what breaks, and the SEO step people forget.
-
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.