Can You Build a Real Business App with Bolt.new?

We spent real time inside Bolt.new, building an actual app from a single prompt. This article is the honest version of what we found: the good, the genuinely impressive, and the parts where you will want a real developer in the room.

10 hours ago   •   6 min read

By Yuriy Berdnikov

"Build a mobile app just by describing it.” That is the pitch, and on the surface it is irresistible. Just type a sentence and watch an app appear.

For some projects, that promise holds up beautifully. For others, it quietly falls apart the moment things get serious.

We spent real time inside Bolt.new, building an actual app from a single prompt. This article is the honest version of what we found: the good, the genuinely impressive, and the parts where you will want a real developer in the room.

Let’s break it down.

What Is Bolt.new?

Bolt.new is an AI-powered app builder from StackBlitz. You describe what you want in plain language, and an AI coding agent writes the frontend, wires up the backend, installs packages, and gives you a live preview.

Bolt.new
Here we asked for a mobile app to browse GitHub users, with a live-filtering search bar, infinite scroll, and a detail screen.


Under the hood it runs on WebContainers, a micro virtual machine that runs Node.js directly inside Chrome. That single architectural fact explains almost everything Bolt is great at, and almost everything it cannot do.

The starting point is disarmingly simple: one text box. Bolt can apply a design system out of the box: Material UI, Chakra, Shadcn, or even corporate systems like the Washington Post and Porsche, so the result looks intentional rather than thrown together.

Pick a design system before generating, or import your own.
Pick a design system before generating, or import your own. A genuinely nice feature for keeping output on-brand.

On paper, the capability list is broad: web apps, full-stack apps, Figma and GitHub imports, one-click hosting, databases, authentication, and, the headline feature for us, mobile apps via Expo and React Native.


💡
Bolt generates React Native code for mobile, but it runs in a browser sandbox that cannot run Xcode, Android Studio, or the Expo build pipeline. It writes the code; it does not produce a signed app you can ship. It also cannot generate truly native Swift or Kotlin — everything mobile goes through the cross-platform Expo layer.

The Real Build: Speed Is Real, Quality Is Not

Let’s talk about what actually happened when we built our GitHub user browser.

The speed is no exaggeration. Within about ten minutes, Bolt had read the relevant component docs, drawn up a plan, and worked through it step by step: theme, list item, list screen with search and infinite scroll, detail screen, navigation, build, and verify.

Bolt’s plan-and-execute flow.
Bolt’s plan-and-execute flow. It reasons about the task, checks off steps, and reports “Plan completed.” The first impression is genuinely impressive

Our prompt explicitly asked for a search bar that filters users as you type. What we got was a search that returned nothing for a perfectly valid query, and then, on slightly different input, it worked. The behaviour was inconsistent and fragile.

This is the classic Bolt experience: it looks finished, demos well, and then the edges fall off the moment a real user does something unexpected. So we opened the code to see why.

The network call catch block is empty.
The smoking gun. The network call catch block is empty, with a comment that literally says it will “silently handle rate limit / network errors.” When GitHub rate-limits the request, the app swallows the error, shows nothing, and never recovers — exactly the bug we saw.

That single empty catch block explains the whole broken-search experience. A human developer would surface that error, retry, or at minimum show the user what went wrong. The AI chose silence, because silence makes the happy-path demo look clean.


💡
We asked for a mobile app. Look closely at that code: IntersectionObserver, HTMLDivElement, an index.html, a vite-env.d.ts . Bolt built us a Vite + React + Material UI web app rendered in a narrow phone-shaped frame — not a React Native mobile app at all. The “mobile” preview is a responsive website. For a non-technical person, that distinction is invisible until a developer points it out — or until they try to publish to the App Store and discover there is nothing to publish.

None of this means the code is worthless. The structure is readable, the TypeScript is mostly sane, and as a starting point it saves real time. But “readable starting point” and “production-ready business app” are very different things.

Exporting the Project: Hand-Off or Start Over?

Good news first: you are not locked in. Bolt lets you export the full source as a ZIP, or push straight to GitHub. You own the code.

Export → Download gives you the complete project as a ZIP.
Export → Download gives you the complete project as a ZIP. From here a developer can open it in a real editor and keep going.

So the tempting plan is obvious: prototype in Bolt, export, hand it to developers, let them “just finish it.” Sometimes that works. Often it doesn’t, and the reason is in the details.



Remember our build was a web app (Vite + React + MUI), even though we asked for mobile. Turning that into an actual React Native mobile app isn’t a tweak, it’s a rewrite. MUI is web-only. Every DOM element has to become a React Native primitive. CSS becomes StyleSheet. There is no window, no document, no localStorage.

From a developer’s chair, receiving a Bolt codebase is often harder than starting fresh. The architecture is arbitrary (the AI picked it, not a person), patterns are inconsistent, and you spend hours asking “why was this done this way?” only to learn the answer is “no reason.” Undoing decisions takes time you could have spent building correctly the first time.

Profitability & the Bottom Line

If you need to validate an idea, raise a conversation, win a stakeholder, or simply see your concept breathing on a screen this afternoon, Bolt is excellent, and a few hundred dollars is money well spent. As a prototyping and communication tool, it is one of the most effective things on the market.

We scoped that migration properly:

Phase Effort What's involved
Expo scaffold + dependencies 1–2h New project, navigation, icons, safe-area
Rewrite list screen 4–6h FlatList, debounced search, real error handling
Rewrite detail screen 3–5h ScrollView, native links, icon mapping
Theme + fonts migration 1.5h MUI palette → RN theme
Loading / error / pull-to-refresh 1–2h Idiomatic RN patterns
iOS + Android QA 2–3h Safe area, keyboard, scroll performance
Assets, config, bug-fix buffer 4–6h Layout drift, platform quirks
Proper architecture layer (SOLID, lite) +8–10h Domain types, repositories, service hooks, DI
Total to reach a clean, maintainable RN app ~32–50h ≈ 4–6 working days, even with AI assistance


If the app handles money, personal data, or multi-user coordination, if it needs maps, CarPlay, widgets, dependable notifications, or any real native capability, if it’s core to your business rather than a quick experiment, then prompt-driven generation is the wrong foundation. You want engineers who will build it correctly, securely, and in a way you can grow for years.

Spread the word

Keep reading