Custom softwareSaaSCode ownershipMethod
Moving off Bubble: when and how to migrate to custom code
9 min read

Moving off Bubble is worth it when the platform blocks something concrete: a bill that tracks activity instead of your budget, data hosted in the United States when your customers need it elsewhere, a team that needs automated tests and code review, or a feature you cannot build in the editor. Without one of those signals, staying on Bubble is often the right call. With one, the safe approach is to keep the Bubble app live and migrate module by module, data included.
Everything below is based on Bubble's official documentation as read on 3 November 2026. Plans change, so check Bubble's pricing page before you decide.
What Bubble does well, and why many teams stay
Bubble has let a lot of founders ship a product without an engineering team. Database, user accounts, workflows, hosting and backups come built in, and the platform runs on Amazon Web Services with Cloudflare in front. That is a large share of the operations work you would otherwise have to organise yourself.
Keep that in mind before you leave: everything Bubble does behind the scenes becomes your job. Bubble's own page on exporting your app lists it plainly: hosting, a database, authentication, file storage, domains, monitoring and backups all need to be set up once the app has moved. Our comparison of agencies, freelancers and no-code covers when no-code remains the best answer.
Four signals that justify migrating
| Signal | What happens on Bubble | What custom code changes |
|---|---|---|
| Usage-based billing | Every action consumes workload units | Hosting costs you size yourself |
| Hosting location | Shared servers in the US, region choice on Enterprise | Region chosen from day one |
| Ownership and portability | No downloadable source code | A repository another team can take over |
| Engineering practices | Visual editor, logic spread across workflows | Automated tests, code review, versioning |
1. The bill follows activity, not your budget
Bubble uses usage-based pricing measured in workload units (WU). Each plan includes a monthly allowance; beyond it you pay overages as you go or add a workload tier, on the Starter, Growth and Team plans. The documentation lists twelve activity types that consume units, including database searches, workflows, API calls and page loads. Bubble emails you at 75% and 100% of your monthly allowance.
That model is not a flaw. It is fair for a lightly used app. It becomes a signal when your margins depend on a predictable cost per customer, which is typical for a SaaS with a fixed price per seat or tier, or when the team spends more time tuning consumption than building the product.
2. Your data needs to live somewhere else
According to Bubble's hosting documentation, the shared environment is hosted in the US and that location cannot be changed; only the Enterprise plan lets you choose the AWS region. If a large customer, a public tender or your own GDPR assessment requires hosting in Europe or another region, you face a choice: move to Enterprise, or migrate.
3. You want code you can take with you
Bubble does not offer source code to download. Its export page describes a different route: an AI agent connects to your app through the Bubble MCP server, in beta, reads your data types, pages, workflows and privacy rules, then recreates the app in the language and framework you pick. Bubble notes that this is effective but does not guarantee perfect fidelity, and calls the result "a strong starting point, not a finished app". API keys are not readable by the agent and have to be copied over by hand.
If the ability to change vendor or platform matters to you, weigh this now rather than later. Our guide to avoiding vendor lock-in sets out what you should be able to take with you when you leave.
4. Your team needs engineering practices
Once several people change the app, you need automated tests, a review before anything reaches production, and a readable version history. As the product grows, logic scattered across hundreds of visual workflows gets hard to reason about. That is a form of technical debt, and a well-kept codebase makes it visible and repayable.
Bad reasons to migrate
- "Code is more professional." Badly written code is worse than a well-built Bubble app. What matters is how the product holds up over time.
- "It will be cheaper." Not necessarily. As Bubble itself points out, costs in code are spread across several providers (hosting, database, email, monitoring), and you add maintenance and the rebuild itself. List them all before you compare.
- "A feature is missing." First check whether a plugin, the API Connector or custom code in an HTML element covers it. Bubble recommends exactly that before any move.
What you take with you, and what you rebuild
| Item | How it leaves Bubble | What it becomes in code |
|---|---|---|
| Data | CSV, JSON or NDJSON export, or the Data API | Tables in a database such as PostgreSQL |
| Data types and option sets | Read by the agent or mapped by hand | Schema, lookup tables or enums |
| Pages and workflows | Read by the agent, then rebuilt | Screens and server logic, with tests |
| Privacy rules | Read by the agent | Access control, rewritten and verified |
| User accounts | Needs a plan | Authentication and a way for users to sign back in |
| API keys and secrets | Copied by hand | The new host's secret store |
| Backups and monitoring | Provided by Bubble | Set up and tested by you |
Two items deserve extra care.
Record IDs. Keep each Bubble record's unique ID as a column in the new database. It keeps references between tables correct after the move and lets you rerun the import as many times as you need.
Access rules. Bubble's privacy rules protect your data without showing up anywhere on screen. Their equivalent in code has to be written and then tested, user by user and role by role. This is where a fast, AI-assisted rebuild most often goes wrong, and our security checklist for AI-built apps applies here too.
Migrating module by module, with no downtime
A good migration does not interrupt the service. The Bubble app stays live during the rebuild, and the switchover is prepared like any other release.
- Inventory. List data types, workflows, integrations (payments, email, third-party APIs) and access rules. The inventory doubles as your specification.
- Pick the order. Start with a low-risk module, or one that burns a lot of workload units, such as a background job or an export, rather than user sign-up.
- Build the new database. Create the schema, write the migration script and rehearse it until the counts match.
- Bridge both systems. During the transition, Bubble's Data API lets the new code read records still managed in Bubble. Secure it properly: it follows the same privacy rules.
- Test with real data. Acceptance testing with a few users, on a copy of production data, before any switchover.
- Switch, then watch. Final data migration, domain cut-over, and the Bubble app kept read-only for a few weeks as a fallback.
For a SaaS with many active customers, moving customers over in batches lowers the risk further. It does mean running both systems side by side for longer, which is a case-by-case decision.
How long and how much
We do not quote a universal figure: it depends on the number of data types, workflows and integrations, and above all on the state of the data. Three reliable rules of thumb instead:
- The rebuild is only half the job. Data migration, access rules, hosting and acceptance testing take as long again.
- AI speeds up writing code, including through the agent Bubble offers, but not decisions or verification. Budget time for review.
- Running costs change shape. One Bubble subscription becomes several lines (hosting, database, third-party services, maintenance). Compare them line by line with your current subscription, over at least a year.
If your app was built with an AI app builder rather than Bubble, the process is very similar, and we cover it in taking a Lovable app to production.
Where to start
Before deciding, get the app reviewed: an inventory of workflows, workload consumption over the last three months, privacy rules and data volume. That review tells you whether to optimise on Bubble, move to a higher plan or migrate, and in which order. Your Bubble app is also an excellent specification: at LPR Studio we start from what it shows to present, in a video call within 5 business days, a free prototype of the coded version, before you commit to anything.