# Ship Next.js Apps to iOS and Android with Capacitor

> Package Next.js web applications into native iOS and Android apps using Capacitor

A practical workflow shared by Marc Lou for packaging existing Next.js web apps into native mobile wrappers using Capacitor. It allows web developers to publish to the Apple App Store and Google Play Store without knowing Swift, Kotlin, or React Native. This approach significantly cuts down development time when launching mobile versions of existing web products.

## How it works

Marc Lou: 'You can ship an iOS + Android app without writing a single line of native code. I used @capacitorjs to push @HabitsGarden to the app stores in 14 days. I have no clue how Swift, Java, or even React Native works. My app is a NextJS project. Capacitor wraps it in a native container for iOS/Android. It just works.' Follow-up credits @martindonadieu with helping set everything up in person.

## What it is for

- Turn an existing Next.js web application into mobile apps for iOS and Android
- Publish to mobile app stores without learning Swift, Java, or React Native
- Rapidly launch a cross-platform MVP from a single web codebase

## Key points

- Uses Capacitor to bundle web code inside native platform web views
- Maintains a single Next.js codebase across web, iOS, and Android
- Bypasses the need for native language skills like Swift or Kotlin
- Enables rapid store submissions for indie hackers and solo founders

## Pricing

Free

## Details

- Type: Tip
- Category: [Development](https://xiry.app/topics/development.md)
- Platforms: iOS, Android, Web
- For: Web developers, indie hackers, and Next.js builders wanting mobile apps
- Alternative to: React Native, Flutter, Cordova
- Tags: nextjs, capacitor, mobile, ios, android, webdev

## Why it was saved

- [@marclou, 17 September 2024](https://x.com/marclou/status/1836023560462360746): Marc Lou shipped Habits Garden (a Next.js project) to the app stores in 14 days without knowing Swift, Java or React Native; Capacitor (@capacitorjs) wraps the web app in a native container for iOS/Android.

## Related

- [Animated Loading Button in SwiftUI](https://xiry.app/resources/animated-loading-button-in-swiftui): Pattern for building a multi-state morphing button in SwiftUI (Tip, Free)
- [greenlight](https://xiry.app/resources/greenlight): Pre-submission compliance scanner for App Store and Google Play guidelines. (Web app, Open source)
- [Hide Next.js Pages with Metadata Robots](https://xiry.app/resources/hide-next-js-pages-with-metadata-robots): Prevent search engines from indexing specific Next.js pages using metadata robots (Tip, Free)
- [How loading.jsx Works with Suspense in Next.js](https://xiry.app/resources/how-loading-jsx-works-with-suspense-in-next-js): Route-level loading.jsx vs granular React Suspense boundaries in Next.js App Router. (Tip, Free)
- [iOS Web Payments Starter Kit](https://xiry.app/resources/ios-web-payments-starter-kit): Starter kit for external web payments in native iOS apps. (GitHub repo, Open source)
- [Superwall](https://xiry.app/resources/superwall): In-app paywall management, A/B testing, and remote configuration platform (Web app, Freemium)

Updated 11 October 2026. Page: https://xiry.app/resources/ship-next-js-apps-to-ios-and-android-with-capacitor

Make your own library: Xiry takes your saved reels, tweets, Reddit bookmarks and Watch Later videos, makes them searchable and pulls the useful stuff out, like this library. It's invite-only for now; join the waitlist at https://xiry.app/#waitlist.
