Founder Guides
Turn a Web App Into an iOS App with Capacitor
How Capacitor wraps an existing web app into a real iOS and Android app — and the store submission steps that actually get it through review.
You don't need to rewrite your Lovable, Bolt, or Replit web app in Flutter or native code to get it on the App Store and Play Store. Capacitor wraps your existing frontend in a native shell, and most of the actual work is in native-specific polish and getting cleanly through store review.
What Capacitor actually does
Capacitor packages your existing web app (React, Vue, or plain JS) inside a native iOS and Android project, giving it a real app icon, a genuine store listing, and access to native device APIs — camera, push notifications, biometrics — through a JavaScript bridge, without rewriting your UI.
It's meaningfully different from just opening your website in a WebView: a well-configured Capacitor app gets native navigation gestures, proper offline handling, and real push notifications, which is what separates it from feeling like "a website in a box" to users.
What actually needs adjusting before wrapping
Most of the work isn't in Capacitor's configuration — it's making sure your existing web app behaves like a mobile app once it's wrapped: touch target sizes, safe-area insets around notches and home indicators, offline states that don't just show a browser error, and navigation that doesn't rely on browser back-button behavior a native shell doesn't have.
Store assets: what's actually required
Both stores require app icons at multiple resolutions, screenshots at specific required sizes per device class, and a store listing description. Apple additionally wants a clear privacy policy URL and, if your app has login, an account deletion path. None of this is complex, but all of it is checked, and missing pieces are a common rejection cause we cover in more detail in our App Store rejection guide.
The review process, briefly
Apple's review typically runs 24-48 hours; Google's is faster and more automated. The most common first-submission issue for wrapped apps specifically is Apple's Guideline 4.2 (minimum functionality) — if the app doesn't clearly do more than a mobile browser tab, reviewers push back. The fix is making native capabilities (push notifications, offline mode, camera integration) genuinely visible in the review build, not just present in the code.
When wrapping isn't the right answer
If your app needs heavy native performance (complex animations, intensive on-device processing) or deep platform-specific integration beyond what Capacitor's plugin ecosystem covers, a native or Flutter build becomes the better long-term answer. For most content, marketplace, and workflow apps, though, wrapping gets you a genuine store presence without that cost.
Stuck on this?
Get a code audit — 48 hours, fixed price ($199). A written report on what's broken, what's salvageable, and a fixed quote to fix it.