# Is your Bolt app ready for the App Store?

> Free Bolt.new to App Store checker. Paste package.json from your Bolt project to check Capacitor, Vite vs Next.js builds and the appId, then copy a fix prompt.

Not on its own. Bolt.new builds a **web app**, usually Vite + React. To reach the App Store and Google Play it needs a native shell such as Capacitor around a **static** build. Paste `package.json` from your Bolt project to see what is set up, what is missing, and get a fix prompt to paste back into Bolt.

- Tool: Bolt checker. Input: Paste package.json. Free, no signup. Runs entirely in the browser; nothing is uploaded.
- Interactive version: https://capwr.app/free-tools/bolt-capacitor-checker
- All free tools: https://capwr.app/free-tools
- Last updated: 2026-10-14

## How to use the checker

1. In **Bolt**, open the code editor and copy `package.json` from the project root — or download the project and open the file from the zip, or copy it from the GitHub export.
2. Paste it into the checker, or drop the file on it. Add `capacitor.config.ts` if the project already has one.
3. Fix anything amber or red. Each row says why it matters; the prompt at the end bundles the fixes for Bolt or Cursor.

## Bolt projects that wrap cleanly — and the ones that do not

- **Vite + React (the default)** builds to `dist`. Capacitor wraps it as it is.
- **Next.js templates** run a Node server by default. Inside an app there is no server, so you get a blank screen. Switch to a static export (`output: 'export'` writes an `out` folder) before wrapping.
- **Expo templates** are React Native, not a website. They ship with Expo’s own build service rather than Capacitor, so this checker is not for them.
- **`vite-plugin-node-polyfills`** shows up in many Bolt projects. It is a browser shim, not a native plugin: it does not give you the camera, files or push.

## What the checker looks at

| Check | What it means | Why it matters |
| --- | --- | --- |
| Capacitor present | `@capacitor/core` and `@capacitor/cli` are installed | Without the native shell there is nothing to upload to TestFlight or Google Play |
| Versions match | All `@capacitor/*` shell packages share one major version | Mixed or very old versions fail at `cap sync` or in the store build |
| iPhone and Android packages | `@capacitor/ios` and/or `@capacitor/android` | Each store needs its own native project; you can start with one |
| Website kind (SPA vs SSR) | A static build (a folder with `index.html`) or a Node server | A phone has no Node server: server-rendered apps open on a blank screen |
| Build folder (webDir) | The folder the app loads after `npm run build` | Wrong folder, blank app |
| App id | A `com.studio.myapp`-style id | It becomes the bundle ID and package name, and is permanent once the stores know it |
| Live URL | `server.url` in `capacitor.config` | Loading your live site instead of the build is the classic Guideline 4.2 rejection |
| Native plugins | Camera, share, push, haptics… | Phone features people actually use are what make a wrapper feel like an app |

## From Bolt to TestFlight

Push the Bolt project to GitHub, then [connect it in CapWrapp](https://capwr.app/login). CapWrapp adds Capacitor with a pull request if it is missing, builds the iPhone app on GitHub’s Mac machines, and uploads to **TestFlight** and **Google Play** testing — no Xcode on your computer. Before you submit, run the [Guideline 4.2 self-audit](https://capwr.app/free-tools/apple-guideline-4-2).

## FAQ

### Can I publish a Bolt.new app to the App Store?

Yes, once it is wrapped as a native app. Bolt builds web apps; the App Store needs a signed iPhone app. Capacitor wraps the Bolt build, then you sign and upload it with an Apple Developer account. Bolt’s Expo templates are the exception — they are React Native already.

### Does this work with a downloaded Bolt zip, or only GitHub?

Either. Copy package.json from the root of the zip or the repo and paste it here. The check runs in your browser and nothing is uploaded.

### Bolt gave me a Next.js app. Can Capacitor wrap that?

Only as a static export. Capacitor loads a folder of files; it cannot run next start on a phone. Set output: "export" in next.config and point webDir at the out folder.

### If I pass, will Apple approve the app?

Not necessarily. This checker looks at packages and config. Apple’s Guideline 4.2 can still reject an app that is only a website in a webview.

## Related free tools

- [Is your Lovable app ready for the App Store?](https://capwr.app/free-tools/lovable-capacitor-checker) — Paste package.json. See what is set up, what is missing, and get a prompt to paste back into Lovable.
- [Is your Base44 app ready for the App Store?](https://capwr.app/free-tools/base44-capacitor-checker) — Check a Base44 export: the frontend Capacitor wraps, the backend that stays hosted, and common setup mistakes.
- [Can this GitHub repo become an iPhone and Android app?](https://capwr.app/free-tools/github-repo-checker) — Paste a public repo URL. The same checks as the builder checkers, read straight from GitHub.
- [Capacitor appId and bundle ID validator](https://capwr.app/free-tools/capacitor-config-validator) — Check an appId against Apple and Android rules at once, plus webDir and server.url in capacitor.config.
- [Do you need a Mac to publish an iPhone app?](https://capwr.app/free-tools/do-i-need-a-mac) — Three questions. What you need for TestFlight and Google Play — accounts, costs, and whether a Mac is one of them.
- [Will Apple reject your app as just a website?](https://capwr.app/free-tools/apple-guideline-4-2) — Six questions on Apple’s Minimum Functionality rule — the usual reason wrapped web apps get rejected.
- [Why was my app rejected by Apple or Google Play?](https://capwr.app/free-tools/app-store-rejection-explainer) — Paste the rejection. Get the guideline in plain English, the fix, a reply for App Review, and a prompt for Lovable or Cursor.
- [App icon generator for iPhone and Android](https://capwr.app/free-tools/app-icon-generator) — Drop a logo or type an emoji. Get the iOS 1024 icon, Android adaptive and round icons, and both store icons — in Capacitor’s folders.
- [Why did my iOS or Android build fail?](https://capwr.app/free-tools/build-error-explainer) — Paste a failed build or upload log. Get the known error, what it means, and how to fix it — signing, versions, Gradle, uploads.
- [App Store and Google Play screenshot sizes](https://capwr.app/free-tools/app-store-screenshot-sizes) — Drop screenshots, see which store slots they fit, and export the missing sizes as PNGs both stores accept.
- [Google Play 12 testers, 14 days: when can you publish?](https://capwr.app/free-tools/google-play-12-testers) — Enter your testers and the day the 12th joined. Get the date you can apply for production, a reminder, and draft answers.

## About CapWrapp

CapWrapp turns a web app on GitHub — built with Lovable, Bolt, Base44, Cursor or by hand — into iPhone and Android apps. It adds Capacitor if the repo needs it, signs the builds, and ships them to TestFlight and Google Play from GitHub Actions, with no Mac or Xcode on your side. [Get started free](https://capwr.app/login) · [Lovable to App Store guide](https://capwr.app/guides/lovable-to-app-store)
