Skip to content
Base44 SEO Journal

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.

PartWhat it is on Base44Can you export it?
FrontendReact + Vite app, pages in src/pagesYes: ZIP, GitHub or CLI
Entity schemasJSON schema files, one per data typeYes: CLI eject copies them
DataRecords in Base44’s databaseYes: CSV per table
Users and loginBase44 authenticationUser records yes; no documented password export
Backend functionsDeno TypeScript functionsYes, as code; they rely on Base44’s runtime
Built-in integrationsSendEmail, InvokeLLM, UploadFile and othersNo: replace with your own providers
FilesUploaded media on Base44’s storageDownload them yourself
HostingBase44 serves the app and handles SEO pre-renderingNo: 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 main come 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

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:

  1. Recreate your entities as database tables.
  2. Import the CSV data.
  3. Move users (user records come over; plan on password resets, since Base44 documents no way to export password hashes).
  4. Replace every base44.entities.*, base44.auth.* and base44.integrations.* call.
  5. Port backend functions (Supabase Edge Functions also run on Deno, which helps).
  6. 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, www handling 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

  1. Connect GitHub, even if you never plan to leave. It’s the cheapest insurance.
  2. Export your data to CSV and store it somewhere you control.
  3. If you’re considering a full move, run the SDK count above and read the Supabase migration guide before committing.

Found something wrong or out of date? Base44 ships changes every week and we'd rather fix a guide than let it rot.

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