AIJUTSU
> MIGRATION_NOTES · Bolt

Migrating your app off Bolt

Most people who ask us about leaving Bolt still like it. The app works, people use it, and somewhere in the last few months each change started taking longer than the one before.

The trigger is sometimes a customer asking where the data lives, sometimes a developer who opened the project and went quiet, and quite often the invoice.

This page sets out what migrating actually involves, what it costs each month to run the result, and the questions worth asking before you decide anything.

> 30 MINUTES · COMPLIMENTARY · NO OBLIGATION
> THE_LIST

What tends to move, and what tends to need a plan

A migration is mostly a list. This is the version we start from; your app will add a few lines of its own.

> USUALLY MOVES CLEANLY
  • The front-end code, once it is in a Git repository you control.
  • Static assets: images, fonts, the build output.
  • The database schema, as migration files.
  • The domain name, as long as the registrar account is yours.
  • The design, which can keep living in Bolt if you want it to.
> NEEDS A PLAN OF ITS OWN
  • User accounts, with their password hashes or sign-in methods.
  • The data itself: the records, and the files people uploaded.
  • Secrets and environment variables, which no export includes.
  • Anything Bolt wired up for you: email, payments, AI calls, webhooks, scheduled jobs.
  • Monitoring, backups, and who gets the alert at two in the morning.
> THE_LONG_VERSION

Leaving slowly, on purpose

The questions we ask, the parts that surprise people, and how we tend to go about it.

What "migrating" can mean

When someone tells us they want to migrate off Bolt, we have learnt to ask which of four things they mean, because each leads somewhere different.

The first is moving the hosting. The app keeps its code and its data and simply runs somewhere else. This is the smallest move, and for a static front end it can be an afternoon.

The second is moving the backend: the database, the user accounts, the uploaded files, the functions that run on a schedule. This is where the real work lives, and it is the one most people mean.

The third is owning the process: being able to change the app without Bolt's editor, through a repository, a review and a deployment you can explain to someone else. This can be done while the app still runs on Bolt, and it is often the right first step.

The fourth is a rebuild. Sometimes the generated code has drifted so far from what the business needs that starting again, with the old app as a very precise specification, costs less than untangling it. A few builders offer no code export at all, which makes this the only route.

Which of these is yours? It is worth answering before reading on, because the cost and the timeline differ by an order of magnitude between the first and the fourth.

Why building on Bolt was a reasonable call

A year or two ago the choice was between a builder that could produce a working app in a weekend and a development quote that started at five figures and ended months later. Picking the weekend was sensible. The app exists, it has users, and those users have taught you things about the business that no specification would have. That knowledge is worth more than the code, which can be rebuilt.

The feeling that comes with outgrowing a builder tends to be a kind of embarrassment, as if the right move had been obvious all along. From where we sit it looks like a good decision that has done its job, which is what early decisions tend to do.

What usually moves cleanly

The code is the easy part. On most builders, Bolt among them, the front end can be synced to a repository or downloaded, and what you get is an ordinary web project in a mainstream framework. A developer can usually have it running on a laptop within the hour. The database schema usually comes along as migration files, which are the recipe for recreating the tables rather than the tables themselves.

The design can stay where it is. One approach we use often is to keep the builder as the design surface, so the people who made the app keep making its screens the way they are used to, while the backend becomes something you own. The builder's backend is replaced by a mock inside the editor and by the real thing in production.

What needs its own plan

State is the hard part, and three kinds of state in particular. User accounts come first: if people sign in with a password, the hashes live in the builder's authentication service, and whether they can move without everyone resetting their password depends on the platform and on that service. Uploaded files come second: they sit in a storage bucket that no code export touches. Secrets come third: the API keys for email, payments and AI models are kept out of every export on purpose, which is correct, and which means someone has to collect them.

Then there is everything Bolt connected for you. A webhook from a payment provider points at a URL on Bolt's domain. A scheduled job runs on Bolt's scheduler. Each of these is small on its own and easy to miss as a group. We keep a one-page list for every migration, and it is usually longer than the client expected and shorter than they feared.

The questions worth asking before launch day

Security is the part that generated apps tend to get wrong in the same few ways. An automated scan of about a thousand AI-generated apps across Lovable, Bolt, Replit, Vercel and others, published by Stefan Lederer of securityscanner.dev in April 2026, reported that 183 of its 190 critical findings were misconfigured row-level security on Supabase databases, which in practice means any signed-in user can read other users' rows. The same scan flagged 38 apps with API keys sitting in the JavaScript bundle, and a few API endpoints with no authentication at all. One scan is one scan, and the figures will have moved since it ran. The pattern, though, matches what we find when we open a generated codebase for the first time.

Three checks cover most of it, and none of them needs a migration to run: searching the loaded JavaScript for the word "key" in the browser's developer tools on the live app, signing in as one user and trying to fetch another user's record by changing an ID in the address bar, and listing every API route the app has and asking, for each one, who is allowed to call it. If those three come back clean, the app is in better shape than most. If they come back with findings, it is better to know while the app is still on Bolt than on the first morning it is on infrastructure you are responsible for.

What leaves Bolt with you

Bolt, made by StackBlitz, gives you two ways out, and in our experience most teams end up using both. From the project menu you can export the whole project and download it as a zip, which is the quickest way to see what you actually have. You can also connect the project to a GitHub repository, after which Bolt and the repository stay in sync in both directions. The sync is worth understanding before you rely on it: Bolt checks GitHub every 30 seconds for changes made outside Bolt and pulls them in, and in the rare case that both sides change at nearly the same moment, Bolt shows a conflict message, pulls in the newer GitHub version and asks whether to apply your last Bolt change on top of it or keep GitHub's version as it is. If a developer is going to work in the repository while someone keeps prompting in Bolt, it helps to agree who edits what.

What comes out is a normal web project. If Bolt generated backend logic for you, it is in the export too, usually as a small Node server with API routes for each feature, and a database layer talking to Supabase or to Bolt's own cloud database. Mobile projects come out as Expo apps.

Two things do not travel. Secrets are kept out of the export and out of GitHub on purpose, so your Supabase URL and keys, and any OpenAI or payment keys, have to be written into a local environment file by hand. And the data itself lives wherever the database was: in your own Supabase project, where it already belongs to you, or in Bolt Cloud, which needs an export of its own before the Bolt subscription ends.

The practical sequence we would suggest is the one Bolt's own structure implies: connect GitHub first, confirm the repository builds on a laptop with the secrets filled in, and only then decide where the database should live next.

How we tend to approach it

Our default, when a client wants to own the result, is a Go backend on PostgreSQL, deployed to a cloud region in Singapore, with the builder kept as the place the front end is designed. Go and Postgres are boring in the best sense: most developers you hire later will know them, and both are easy for an AI assistant to read and change, which matters more now than it did two years ago. The front end keeps a mock data mode so the builder's editor still works, and a real mode that talks to the new API. The cutover happens once the real mode has run alongside the old backend for long enough that nobody is nervous.

We still get the timing wrong on one part more than any other: user authentication. Moving accounts is rarely hard technically, and it is almost always the step that produces the support emails. We now plan for a week of those where we used to plan for a day.

A scene, to make it concrete

Picture a nine-person logistics firm in Jurong. The operations lead built a delivery-tracking app on Bolt over two weekends, and the drivers have used it every day for eight months. The trigger for the conversation is a tender: a prospective customer's security questionnaire asks where the data is stored and who has access to it. The honest answer involves a vendor's data centre in another country and an admin login shared by three people. The app is doing its job, and the questionnaire now needs an answer the current setup cannot give.

In that situation the migration is mostly the second kind: move the data and the accounts to a database in Singapore, put the API behind a login with roles, and leave the screens exactly where they are. The drivers would not notice anything, and the questionnaire would get a different answer. The firm is hypothetical; the shape of the situation is one we have met more than once.

Questions to take into your next conversation

  • What changed, specifically, that made leaving Bolt feel necessary this month and not six months ago?
  • Which part of the app do you change most often, and who changes it?
  • Where does the data live right now, and who could answer that without checking?
  • If Bolt's editor disappeared tomorrow, what would you miss most?
  • Who will get the alert when the app is down at two in the morning?

If it would help to think these through with someone outside the team, we offer a short discovery call for exactly this, and we are glad to say if staying put is the better answer.


Leaving a different builder? Emergent · Lovable · Replit · Riff · Zite

> MONTHLY_COSTS

What it costs each month, roughly

Two subscriptions side by side: staying on Bolt, or running the same small app on a stack you own with Claude doing the building. Prices in US dollars before GST, as published on 5 November 2026.

Staying on BoltA stack you own
The AI you build withPro at US$25 a month, starting at 10 million tokens a month with no daily cap. Teams is US$30 a member a month.Claude Max 5x at US$100 a month, which includes Claude Code. Claude Pro at US$20 a month is enough for some teams.
HostingIncluded in the plan.DigitalOcean App Platform from US$12 a month for a container with 1 vCPU and 1 GiB. A static front end is free.
DatabaseIncluded. Bolt offers its own Bolt Cloud database, or a connection to a Supabase project of yours.Neon Postgres: free to start (100 compute hours and 1 GB a month), then pay as you go at about US$0.11 a compute hour and US$0.35 a GB a month. Roughly US$0 to US$20 for a small app.
Small app, light useAbout US$25 a month on ProAbout US$112 to US$132 a month
When building gets heavierTokens scale with how much you build; Bolt sells larger token allowances on the higher tiers. Hosting and the database stay included.Roughly the same. The Claude plan has usage limits where a builder has per-credit top-ups, and the servers cost what they cost.
Where it runsBolt's hosting, or Supabase's region if you connected Supabase. You do not choose Bolt's.A region you choose. Both DigitalOcean and Neon offer Singapore.

At the entry tier the builder is cheaper, and for a small app that is used lightly, staying put is a perfectly good decision. The own-stack figure stays roughly flat as building intensifies, while builder credits grow with use. Both columns leave out the largest number, which is someone's time to run and maintain the stack. Nothing here is a quote. Own-stack prices checked on 5 November 2026: Claude, DigitalOcean App Platform, Neon.

Bolt's prices: https://bolt.new/pricing

> BOTH_SIDES

What changes when the stack is yours

Price is the easy comparison. These are the ones that tend to matter a year later, and each cuts both ways.

> WHAT YOU GAIN
  • A stack you can name. Go, PostgreSQL and a mainstream front end are things you can hire for, document, and hand to the next developer without a tour of Bolt's editor.
  • A region you choose. The PDPA's transfer limitation obligation applies when personal data leaves Singapore, and where the app runs is one of the first questions a customer's data protection officer asks.
  • A path to SOC 2 or ISO 27001 when a customer asks for it. Both need logs, access lists and backups you can show an auditor, which tends to be simpler when the infrastructure is yours.
  • Costs that stay roughly flat as you build more, with no credit meter running while you think.
> WHAT YOU TAKE ON
  • Someone runs it. Updates, backups, access reviews and the two-in-the-morning alert belong to you, or to whoever you ask.
  • The migration itself: days to weeks of work, depending on how much state has to move.
  • Claude replaces Bolt's AI, and the skill of directing it is yours to build.
  • A monthly bill that is higher at the start, and a few more accounts to keep track of.
> TALK_TO_US

/MIGRATION_CHECK/

Tell us roughly what the app does, who uses it, and what changed. We will come back with the list for your situation, and we are glad to say if staying on Bolt is the better answer.

Prefer good ol' email?

> COMMON_QUESTIONS

/HELP_MENU/

What people ask us before they decide.

  • In every builder we have looked at, Bolt included, the terms give you the code the tool produced for your project, and the export or the repository sync is how you take possession of it. Ownership gets fuzzier for the parts that only exist on the platform: the hosting, the authentication service, the scheduler, the storage bucket. Those are services you rent rather than code you own. The section above on what leaves Bolt with you describes what the export actually contains; it is worth reading the terms once as well.