Bolt.new in 2026: StackBlitz's In-Browser Runtime, and Where the Slop Hits
Bolt runs Node.js in your browser tab, which makes it quick for JavaScript prototypes and fragile when the code leaves the tab. What its documentation says it does, where its pages turn generic, the WebContainer limits, and where updates are posted.
On this page
The first time Bolt.new builds something, the side panel shows a terminal running npm install, then npm run dev, then a preview. There is no remote machine behind that terminal. Bolt runs on WebContainers, which StackBlitz describes as "a browser-based runtime for executing Node.js applications" that "run entirely client-side." The dev server is running in the same tab as the chat.
That part is genuinely different from v0 or Lovable, and it shapes everything else about Bolt: what it is good at, what breaks when you take its code elsewhere, and why its pages still end up looking like everyone else's.
This review is built from Bolt's help center, its pricing page and release notes, the WebContainers documentation and dated press coverage, all read on 17 October 2026. It is not a benchmark: it reports no timings or failure rates, because we hold no measurements that would back them. For the visual clean-up of a site that already shipped, see de-AI your Lovable, v0, or Bolt site. For the neighbors, see v0 in 2026 and the Lovable review.
TL;DR
- WebContainers run Node.js in the browser tab. For prototyping JavaScript apps, trying out a repository or teaching
npm run devwithout installing anything, that is a real advantage. - The runtime has documented limits: it "can only execute languages that are natively supported on the Web," native addons are disabled, and Bolt "only supports JavaScript-based backends."
- Code that works in the tab can fail on a real server. Test the build on real Node before you deploy.
- On design, Bolt has no special immunity. Its own blog says vague prompts produce "a workable but cookie-cutter app."
- Tokens pay for generation, and most of them go to syncing your project's files to the model, so cost grows with the project.
- Updates are posted on Bolt's own domain, not on StackBlitz's company blog. Details below.
What Bolt.new is in 2026
Bolt is StackBlitz's AI app builder. StackBlitz built an online IDE and then WebContainers, the in-browser runtime, before Bolt existed; Bolt launched in early October 2024, described by Eric Simons, StackBlitz's CEO, as "like Claude or ChatGPT had a baby with StackBlitz" (Bytes, issue 329, 6 October 2024). Bolt's help center now introduces it as "an AI-powered builder for websites, web apps, and mobile apps."
The flow, as the help center documents it:
- Type an idea into the chat and click Build now, or start from a Figma frame, a Google Stitch design, a GitHub repository or a Lovable project.
- Name a framework in the prompt or let Bolt choose one. Its supported-technologies page lists "Node.js for the backend" and "any JavaScript framework that runs on the frontend"; mobile apps go through Expo.
- The agent writes files, installs packages and starts the dev server in a WebContainer.
- You iterate by prompt, by editing code in Code view, or with visual edits in the preview.
- You publish to Bolt Cloud on a free
bolt.hostsubdomain or your own domain, deploy through Netlify, push to GitHub, or download the project as a zip.
Two documented exceptions to "it all runs in your tab": in Safari, "previews are hosted rather than running in the browser," and Bolt Cloud's database, hosting and domains run on Bolt's servers, as any backend has to.
The help center lists who Bolt is for: product managers, entrepreneurs, marketers, agencies, students. Our reading of the documentation is narrower: Bolt's advantage is largest for people who want a real JavaScript project, with a real package.json and a real dev server, without installing anything.
Pricing is a token allowance: a free plan with 1M tokens a month, Pro at $25 a month from 10M tokens, Teams at $30 per member (the full table and its source are in Pricing in 2026). v0 and Lovable meter usage in credits; Bolt meters tokens.
Bolt.new updates: where StackBlitz announces them
StackBlitz no longer posts Bolt news on its company blog. Checked on 17 October 2026, the newest post on blog.stackblitz.com dates from June 2025, and its only post about Bolt is the Bolt 100K Open Source Fund, published on 13 February 2025. Bolt's product news goes to two places on Bolt's own domain:
- The release notes at support.bolt.new/release-notes: a dated, week-by-week log of what shipped. This is where to check what changed.
- The Bolt blog at bolt.new/blog: guides, customer stories and comparisons, published several times a week in October 2026.
The changes from the release notes that bear on this review, with the dates as the release notes give them:
| When | What changed |
|---|---|
| August 2025 | Bolt Cloud: publish to a bolt.host domain, or buy and connect a custom domain |
| September 2025 | Claude Agent becomes the default; Bolt Database adds built-in databases with authentication, functions and file storage |
| January 2026 | Figma frames can be imported into the chat as design reference; a claude.md file can hold project context |
| 21 February to 27 March 2026 | MCP servers can be connected, with built-in connectors such as Notion, Linear and GitHub |
| 28 March to 3 April 2026 | Design systems: paid Teams can upload one, which Bolt turns into a browsable Storybook |
| 11 to 17 April 2026 | A design system can be attached to or detached from an existing project; the v1 Agent is closed to new projects from 13 April 2026 |
| 2 to 15 May 2026 | Standard and Max agents replace choosing a model by name |
| 3 to 9 August 2026 | The v1 Agent is retired and remaining v1 projects move to Bolt Agent |
| 31 August to 6 September 2026 | Visual edits in the preview: text, colors and styles, saved to code; only saving uses tokens |
| 14 to 20 September 2026 | Bolt Forge: a third agent running open-source models, as a research preview |
| 5 to 11 October 2026 | Comments pinned to the preview, which can be sent to Bolt as prompts |
Two of these matter for the slop problem described below. Design systems and Figma import give the model something other than its defaults to work from, but only if you supply one, and uploading a design system is a Teams feature. Visual edits make it cheaper to replace a default color or font by hand. None of them changes what a blank prompt produces.
Where Bolt is strong
Node.js in the browser tab
This is the headline, and it is documented. WebContainers run Node.js applications "entirely client-side," which is why a Bolt session can install packages, start a Vite dev server and run an Express route without a remote VM. The edit, reload, look loop happens in your own browser.
For a developer, that means a real project rather than a static preview: a package.json you can read, scripts you can run, a terminal in Code view. For someone learning, it means npm init, node server.js and a working server on a Chromebook with nothing installed.
Trying out a repository
Bolt can import an existing GitHub repository as a project (Bolt help center). For small JavaScript projects, that turns "clone, install, find the right Node version, run" into one step, and keeps your machine clean. Anything that needs a native addon, a non-JavaScript backend or secrets you do not have will not run, for the reasons in the WebContainer section below.
Iterating on a working app rather than a picture of one
Because the project really runs, the agent sees real errors: a failed install, a broken import, a server that does not start. That feedback loop is the point of building on a runtime instead of rendering a preview. It does not make the code correct; it makes the obvious failures visible sooner.
Teaching
A browser, an account and a prompt are a complete setup. Students can generate something, open Code view, read what was written and change it. The design defaults matter least here: a student learning how a dev server works does not need a distinctive palette.
Where Bolt produces slop
The defaults come from the prompt you did not write
Bolt's own blog says it best: "if you keep things vague and surface-level, you'll end up with a workable but cookie-cutter app" (Bolt blog, 25 September 2025). A companion post argues that "the more imagistic, specific, and evocative" the design words in a prompt, "the more distinct the end result" (Bolt blog, 11 September 2025). That is the vendor confirming the problem this site is about.
Bolt does not publish a fixed default stack for a landing page, so check what your project actually received: package.json for the component library and icon set, the root layout or index.html for fonts, the Tailwind config or CSS variables for color. The usual suspects in generated React projects are Tailwind's stock palette, lucide-react icons, Inter or Geist, and, where shadcn/ui is installed, its components/ui folder and cn() helper in lib/utils.ts.
"Modern SaaS" prompts land on the average landing page
Ask any of these builders for "a modern SaaS landing page" without saying anything else, and the likely result is the average of the genre: a sticky nav with two buttons, a centered hero with a primary and an outline button, three feature cards, a three-tier pricing table with the middle tier raised, a logo strip, an FAQ accordion, a four-column footer. Nothing in Bolt's documentation steers you away from that, and nothing forces it either. It is the centroid of the web the models learned from. Breaking it takes structural instructions, not just a new color; see the 73-pattern guide and the anti-slop pricing layouts.
Blue-to-purple gradients
The gradient from blue into purple (from-blue-500 to-purple-600 and its neighbors) is one of the most recognizable marks of a generated page, in Bolt's output as in the others'. If your hero or your primary button carries it and nobody chose it on purpose, replace it. The broader case is in the AI signature gradient piece, and the free scan flags it on a live page.
`cn()` on static class lists
In shadcn-style code, cn() merges conditional classes. Generated components often call it where nothing is conditional:
<div
className={cn(
"flex items-center gap-2 rounded-lg border border-gray-200 bg-white px-4 py-2 shadow-sm",
"hover:bg-gray-50 transition-colors"
)}
>That call does nothing a plain string would not do:
<div className="flex items-center gap-2 rounded-lg border border-gray-200 bg-white px-4 py-2 shadow-sm hover:bg-gray-50 transition-colors">The related habit is the same long class string pasted into several components instead of one shared variant. Both are mechanical repetition of the kind listed in the 23 tells of AI-generated code, and both are cheap to clean up after generation.
The Made in Bolt badge
On the Free plan, "a Made in Bolt badge appears on your project previews and published sites"; a paid plan removes it (Bolt help center). It is the one tell that names the tool outright.
The Bolt fingerprint
What to look for in a Bolt-built project. Some items are documented, the rest are common habits of generated code; the right-hand column says which.
| # | Tell | Where it shows up | Basis |
|---|---|---|---|
| 1 | Made in Bolt badge | Published site on the Free plan | Bolt help center |
| 2 | A bolt.host address | Published site | Bolt help center |
| 3 | A blue-to-purple gradient in the hero or on buttons | Landing page | Common habit, flagged by the free scan |
| 4 | components/ui with shadcn-style primitives, lib/utils.ts with cn() | Project structure | shadcn/ui's install conventions, when it is used |
| 5 | cn() wrapped around static class lists | Component bodies | Common habit |
| 6 | The same class string repeated across components | Component bodies | Common habit |
| 7 | lucide-react as the only icon package | package.json | Common default of the React ecosystem |
| 8 | Inter or Geist as the only typeface | Layout, index.html or CSS | Common default |
| 9 | Code that assumes the WebContainer environment | Paths, process.cwd(), child processes | Follows from the runtime's documented limits |
| 10 | Placeholder copy: "Transform your workflow", "Get started" | Hero and CTAs | Common habit |
| 11 | Markdown notes the agent left for itself | Project root | Bolt's docs say the agent "may add Markdown (.md) files for record-keeping" |
| 12 | No custom Open Graph image, favicon or 404 | Metadata, public/ | Common omission |
The 12 fixes to apply on every Bolt export
A pre-deploy checklist. "Effort" is a judgment, not a timing.
| # | Fix | Reason | Effort |
|---|---|---|---|
| 1 | Replace the gradient hero with a solid color or a gradient between your own hues | Removes the most visible tell | Low |
| 2 | Choose a typeface pairing | Removes the default-font signature | Medium |
| 3 | Replace Lucide with another set or your own icons | Removes the default icon signature | Medium |
| 4 | Turn static cn() calls into plain strings | Less noise, clearer code | Medium |
| 5 | Extract repeated class strings into shared variants | One place to change a pattern | Medium |
| 6 | Remove the agent's leftover notes and unused files | Bolt's docs recommend it for context size anyway | Low |
| 7 | Rewrite the README in your own words | Removes generated boilerplate | Low |
| 8 | Run npm install and the build on a real Node.js install | Catches WebContainer-only assumptions | Low |
| 9 | Audit child_process, fs and path handling | Catches environment mismatches | Medium |
| 10 | Remove hard-coded preview URLs and test data | Leftover development artifacts | Low |
| 11 | Add real metadata, an Open Graph image, a favicon and a sitemap | Generated projects rarely have them | Medium |
| 12 | Rewrite the copy in your own voice | Removes the "transform your workflow" tone | Medium |
This checklist, the 73-pattern guide and the de-AI editor flow cover the distance from "obviously a Bolt site" to "a site."
The WebContainer trap
The single biggest gotcha when Bolt code goes to production is the gap between the runtime it was built in and the one it will run on.
What the runtime cannot do
The WebContainers troubleshooting guide is explicit: WebContainers "can only execute languages that are natively supported on the Web," and native addons, usually written in C++, are disabled, so you may see "Cannot load native addon because loading addons is disabled." The guide's advice is to replace such a package with one "fully implemented in JavaScript" or ported to WebAssembly (webcontainers.io).
Bolt's own help center adds the matching product limit: "Bolt only supports JavaScript-based backends, so languages such as PHP or Python aren't compatible."
In practice, packages that ship native binaries (image processing, native database drivers, headless browsers) are the first to fail. If your prompt asks for one, expect either an error or a JavaScript substitute you did not ask for. Decide which you want before you let the agent improvise.
Paths and the working directory
A project in a WebContainer lives in a virtual filesystem. Code that builds paths from process.cwd(), or assumes the directory layout of the preview, can behave differently on a server, in a container or in a serverless function. Resolve paths relative to the module (import.meta.url, or __dirname in CommonJS) and test on the target platform.
Background work
A dev server in a browser tab lives as long as the tab. Cron jobs, queues, workers and long-lived connections cannot be verified there. Bolt Cloud offers server functions for backend logic; anything beyond that needs a real host to test on.
Environment variables
Set secrets in Bolt's project settings or Bolt Cloud's secrets, not in source files, and read them through one config module. Then check that the deploy target has the same variables: a value that exists in the preview and not in production is a common reason a working demo fails after publishing.
Before you deploy
Download the project or pull it from GitHub, run npm install and the production build on a real Node.js install, and run it. That one step catches most of what is above. Shipping without it means trusting a runtime your users will never run.
Pricing in 2026
Bolt's plans as listed on bolt.new/pricing on 17 October 2026, billed monthly (the page says yearly billing saves up to 28%):
| Plan | Price | Tokens | Also listed |
|---|---|---|---|
| Free | $0 | 1M per month, 300K daily limit | Public and private projects, Bolt branding on published sites, 10MB file uploads, hosting, up to 333k web requests |
| Pro | $25 per month | From 10M per month, no daily limit | Unused tokens roll over to the next month, no Bolt branding, custom domains, 100MB file uploads, up to 1M web requests |
| Teams | $30 per member per month | A monthly allotment per paid member, not shared between members | Everything in Pro, plus centralized billing, admin controls, private npm registries, design system knowledge |
| Enterprise | Custom | Not listed | SSO, audit logs, compliance support, dedicated support |
Tokens pay for AI generation. Bolt's own pricing FAQ explains where they go: most token usage comes from syncing the project's file system to the AI, so the larger the project, the more tokens each message uses. Long sessions on large projects are where the allowance drains, and Bolt's help center recommends clearing context, removing unused files and splitting large files to keep it down.
For comparison, v0's plans on v0.app/pricing the same day: a free plan limited to 7 messages a day, Plus at $30 per user per month and Business at $100 per user per month (both with $30 of included monthly credits per user), and custom Enterprise. v0 meters usage in credits spent at per-model token rates, Lovable meters it in credits too, Bolt meters tokens directly. Lovable and Replit publish their current plans on their own pricing pages; check them on the day you buy.
The Bolt trade-off: you pay for generation, not for running code in the browser tab. Work that is heavy on editing code by hand and light on regenerating it stretches the allowance; regenerating large files over and over does not.
Bolt vs v0 vs Lovable vs Replit Agent
What the four tools document about themselves, read on 17 October 2026.
| Bolt | v0 | Lovable | Replit Agent | |
|---|---|---|---|---|
| Made by | StackBlitz | Vercel | Lovable | Replit |
| Default stack | JavaScript frameworks; Node.js backend only | Next.js, React, TypeScript, Tailwind CSS, shadcn/ui | React and Tailwind CSS; TanStack Start for new apps | Many languages |
| Where the preview runs | WebContainers in the tab (hosted in Safari) | A Vercel Sandbox virtual machine | A hosted preview on lovable.app | A Replit workspace |
| Publishing | Bolt Cloud, Netlify | Vercel | Lovable hosting | Replit deployments |
| Code out | Zip download, GitHub | GitHub pull requests, export | Git sync, zip download | Workspace, Git |
| Free-plan branding | Made in Bolt badge | Not documented | Edit with Lovable badge | Not documented |
| Usage metering | Tokens | Credits at per-model token rates | Credits | Effort-based pricing |
Sources: Bolt help center, v0 docs, Lovable docs, Replit docs.
The reading: Bolt if you want a JavaScript project running in your browser with nothing installed; v0 if your stack is Next.js on Vercel; Lovable if you want hosting, database and auth without touching a terminal; Replit if the project is not JavaScript. On design, none of the four has an edge by default. They all start from defaults, and they all need the same post-generation pass.
Verdict
Bolt's distinctive part, the in-browser runtime, is real and documented, and it makes Bolt a strong tool for JavaScript prototypes, for trying out repositories and for teaching. Its design output has no special protection against the generic look; Bolt's own blog says a vague prompt gets you a cookie-cutter app. And its runtime has documented limits that matter the moment code leaves the tab.
Bolt suits:
- Developers who want a working JavaScript repository quickly and will refine it locally.
- Teachers of Node.js and web basics, for whom "nothing to install" is the feature.
- Anyone evaluating a small open-source JavaScript project without cloning it locally.
- Founders who want a working prototype to validate before investing in engineering.
Bolt is a weaker fit for:
- Backends in Python, PHP or anything else that is not JavaScript.
- Code that depends on native addons.
- A public landing page shipped without a design pass, because the defaults will show.
Ship a Bolt project after the build check above, the fixes in the checklist and a real design pass, and the tool that made it stops being visible.
FAQ
1. Is Bolt.new good for production? It is good for getting to a working JavaScript project quickly. Before production, download the code or pull it from GitHub, build and run it on real Node.js, and go through the checklist above. WebContainers are not the environment your users will run.
2. How does Bolt compare to v0? Bolt runs the project in your browser tab and supports any frontend JavaScript framework with a Node.js backend. v0 generates a Next.js app with shadcn/ui and Tailwind, runs its preview in a Vercel Sandbox virtual machine since February 2026, and publishes to Vercel. Pick on stack and hosting first.
3. How does Bolt compare to Lovable? Lovable generates React and Tailwind apps (on TanStack Start for apps created since 13 May 2026) and hosts them, with Git sync on all plans. Bolt gives you a running project in the browser, more framework choice and Netlify as an alternative host. Lovable's documentation is aimed more at people who will never open the code; Bolt's Code view and terminal are aimed at people who will.
4. Does Bolt code run in real Node.js? Usually, as long as it avoids what WebContainers cannot do: native addons and anything that is not JavaScript or WebAssembly. Environment-specific assumptions about paths and processes are the other common source of trouble. Test the build on real Node before you deploy.
5. What is WebContainer? StackBlitz's in-browser runtime for Node.js applications, which runs entirely on the user's machine (webcontainers.io). Bolt is built on it.
6. Who built Bolt.new? StackBlitz, the company behind WebContainers. Bolt launched in October 2024; Eric Simons is StackBlitz's CEO.
7. Is Bolt free? Yes, with limits. The free plan gives 1M tokens a month with a 300K daily limit, public and private projects, and Bolt branding on published sites. Pro costs $25 a month for at least 10M tokens with no daily limit (bolt.new/pricing, 17 October 2026).
8. Can I deploy a Bolt project to Vercel? Yes, but not from Bolt's publish menu, which targets Bolt Cloud (bolt.host addresses and custom domains) and Netlify. Connect the project to GitHub (Bolt's help center notes that with your code on GitHub you can publish through "another service you choose") and import that repository in Vercel, or download the project and deploy it with the Vercel CLI.
9. Why does my Bolt project look like every other AI-built site? Because a vague prompt gets the average. Bolt's own blog says so. Name a typeface, a palette, a layout and a reference in the first prompt, put durable design rules in project knowledge or an agents.md file (both documented by Bolt), or apply the fixes above after generation.
10. Does Bolt support Python or other non-JavaScript languages? No for the backend: "Bolt only supports JavaScript-based backends, so languages such as PHP or Python aren't compatible" (Bolt help center). For Python work, use a tool that runs it.
11. Can I use Bolt offline? No. The agent, hosting and database need Bolt's servers. StackBlitz did publish an early version of Bolt's code as open source in 2024 (github.com/stackblitz/bolt.new), but the hosted product has moved far beyond it.
12. How do I keep Bolt from forgetting my design rules? Put them where the agent always reads them. Bolt's help center documents project knowledge ("persistent", unlike the chat context) and an agents.md file ("Bolt finds and uses it automatically"). On Teams, a design system can be attached to the project.
13. Where does StackBlitz post Bolt.new updates? On Bolt's own domain: the dated release notes at support.bolt.new/release-notes, and the Bolt blog at bolt.new/blog. StackBlitz's company blog has not covered Bolt since February 2025. The changes that matter for this review are listed in Bolt.new updates.
Glossary
WebContainers — StackBlitz's browser-based runtime for Node.js applications. Runs on the user's machine; cannot load native addons.
Bolt.new — StackBlitz's AI app builder, built on WebContainers.
StackBlitz — The company behind WebContainers and Bolt.new.
Bolt Cloud — Bolt's hosting, database and domain services, added in August 2025.
v0 — Vercel's AI app builder for Next.js.
Lovable — An AI app builder that generates and hosts React and Tailwind apps.
Replit Agent — Replit's AI agent for building apps in its cloud workspace.
shadcn/ui — React components built on Radix UI and Tailwind CSS, copied into your project as source.
Lucide — The icon library most React component kits default to.
cn() helper — A function built on clsx and tailwind-merge that joins and de-duplicates Tailwind classes; shadcn/ui installs it in lib/utils.ts.
Native addon — A Node.js package that loads compiled C or C++ code. Disabled in WebContainers.
HMR — Hot Module Replacement: swapping edited code into the running app without a full reload.
Sources
All read on 17 October 2026 unless dated otherwise.
- Bolt help center: introduction, supported technologies, GitHub, hosting plans and the Made in Bolt badge, managing context, release notes.
- bolt.new/pricing and v0.app/pricing.
- Bolt blog: "Prompting tips for Bolt", 25 September 2025, and "10 prompt keywords to make your app look fire", 11 September 2025.
- WebContainers documentation: introduction and troubleshooting.
- Bytes, issue 329, 6 October 2024.
- blog.stackblitz.com and bolt.new/blog, checked for dates.
- v0 docs, Lovable docs, Replit docs for the comparison table.
The review is editorial, not sponsored. We have no commercial relationship with StackBlitz, Vercel, Lovable or Replit.
Revision note
Updated on 17 October 2026. Earlier that day the pricing table, the token figures and FAQ 7 were corrected against Bolt's pricing page, and the publishing paths and FAQ 8 against Bolt's release notes; the section on where Bolt updates are announced and FAQ 13 were added. In a second pass the same day, everything presented as our own measurement was removed because nothing documented it: the timed preview test, the count of gradients across "one hundred Bolt outputs," the ten deployed projects and their success rate, the five-axis scores and the composite. The descriptions of v0 and Lovable were brought up to date with their 2026 documentation, and the WebContainer section now quotes its documentation.
Ship code that looks intentional
Scan any live page for AI-default patterns and get a fix kit: design tokens, class swaps and an agent brief. Free, no account.