Guide · Replit and Apple documentation quoted, read 12 October 2026
How to turn a Replit web app into an iOS and Android app: the four ways, and what each keeps
Your Replit web app works, it is deployed, and it looks fine on a phone. Getting it into the App Store and Google Play is a separate step. There are four ways to do it, and in all of them the backend you built on Replit can stay where it is.
Verified
The short answer. Keep your Replit backend and API. Then choose how the phone app is made:
1. Wrap it with Capacitor, Despia or Median. Fastest: the web app runs inside a native shell. Apple may reject it if it is only the website.
2. Rebuild it in Replit with Expo. Replit’s agent builds React Native apps. One JavaScript codebase for both platforms; Google Play publishing is not yet supported by Replit.
3. Rebuild it natively in Swift for iPhone and Kotlin for Android, calling the same backend. Most work, best result on the phone.
4. Make it a PWA. Users install it from the browser. No store listing.
If people use the app every day and you want push notifications, offline use and a real app feel, rebuild. If you mainly need to be in the stores quickly, wrap it.
Web app, mobile web, mobile app: what you have and what you want
What you have: a web app deployed on Replit. On a phone it opens in the browser and adapts to the screen. That is mobile web.
What you want: an app people download from the App Store and Google Play, with an icon on the home screen, push notifications and access to the phone’s features.
The difference matters because it decides the route. A wrapper keeps the mobile web version and puts it in the stores. A rebuild makes a new front end that runs as an app. Your users, data and business logic can stay the same in both cases.
What stays and what changes when a Replit web app goes mobile
The backend stays. Your database, your API and your server logic keep running on Replit. Replit describes its own mobile apps the same way: “Your server runs on Replit and your mobile app connects to it.” A wrapped app or a native app connects to the same deployment.
The accounts stay. Users sign in to the app with the accounts they already have on the web app.
The front end changes, except in a wrapper. The screens are rebuilt for the phone, in React Native or in Swift and Kotlin.
New for you: store accounts, store review and release builds. Apple’s Developer Program costs 99 USD per year; Google Play charges 25 USD once.
Way 1: wrap the Replit web app (Capacitor, Despia, Median)
A wrapper puts your deployed web app inside a native app shell, so it can be listed in both stores. Capacitor is free and open source; you set it up yourself. Despia and Median are paid services that do the setup for you, and Median publishes a guide for Replit apps. Capacitor vs Despia compares the two approaches in detail.
Good for: being in the stores fast, with almost no new code.
The limits: the app is still your website in a frame. Offline use, background features and the feel of native screens are limited to what the shell adds. Apple reviews it like any app, and guideline 4.2 says: “Your app should include features, content, and UI that elevate it beyond a repackaged website.” A wrapper that only shows the website may be rejected, so plan to add native features such as push notifications.
Way 2: rebuild it in Replit with Expo (React Native)
Replit’s agent can build mobile apps. It uses Expo, a toolchain for React Native, and Replit describes the result this way: “React Native compiles your JavaScript to real native code, not a web view.” You preview on your phone with Expo Go or in Replit’s simulator, and Replit builds the app in the cloud, so you do not need a Mac.
Good for: staying in Replit and in JavaScript, with one codebase for both platforms.
The limits: it is a rebuild of the screens, not a conversion of the web app. And for Android, Replit’s documentation currently says: “Publishing to Google Play is not yet supported by Replit.” You publish the Android app outside Replit.
Can Replit build mobile apps? covers this route in full, from preview to release.
Way 3: rebuild it natively in Swift and Kotlin
A native rebuild keeps your Replit backend and API and builds new screens in each platform’s own language: Swift with SwiftUI for iPhone, Kotlin with Jetpack Compose for Android. The app uses the platform’s own components, push notifications, offline storage and new hardware features as Apple and Google ship them.
Good for: an app people use every day, and a product you plan to grow.
The limits: it is the most work of the four, and iPhone builds need a Mac with Xcode.
It is less work than it sounds when the web app already exists: the product is validated, the screens are known and the backend is done. An AI agent can rebuild the screens from your web app’s pages. In Modaal, one project produces both the iPhone app and the Android app, on the AI subscription you already pay for, and builds go to TestFlight and the App Store from the project.
Way 4: make it a progressive web app (PWA)
A PWA is your web app with an install option and offline support. Users add it to their home screen from the browser. There is no store review and no second codebase.
The limits: it is not listed in the App Store or Google Play. On iPhone, a web app can send push notifications only after the user adds it to the Home Screen, a feature Apple added in iOS 16.4.
Good for: testing whether users want an app at all before you build one.
Which way fits your Replit app?
Three questions decide it:
How often do people open it? Several times a week or more: rebuild (way 2 or 3). Occasionally: wrap it or make it a PWA.
What does it need from the phone? Push notifications, offline use, camera all day, background location or widgets: rebuild. Nothing beyond the browser: a wrapper is enough.
Who maintains it in a year? If you stay in JavaScript and Replit: way 2. If you want standard Xcode and Android Studio projects any mobile developer can open: way 3.
Native app vs web app goes deeper into the first question.
A migration plan in five steps
1. Write down what the app does on a phone. The two or three tasks people repeat. The mobile app does those; everything else can stay on the web.
2. Prepare the backend. Make sure your Replit API works for a client that is not your website: token-based sign-in, and no logic that exists only in the web pages.
3. Open the store accounts early. New personal Google Play accounts must run a closed test with at least 12 testers for 14 days before the app can go to production.
4. Build one task first and test it on a real phone. Then the next.
5. Keep the web app running, and connect the two: links from the website should open the app for people who have it. Mobile web to app covers how.
The four ways from a Replit web app to a mobile app
| Wrap it | Rebuild with Expo in Replit | Rebuild native | PWA | |
|---|---|---|---|---|
| What runs on the phone | Your web app in a native shell | React Native (JavaScript) | Swift (iPhone), Kotlin (Android) | Your web app in the browser |
| Replit backend | Stays | Stays | Stays | Stays |
| New front-end work | Little | Rebuild the screens | Rebuild the screens per platform | Little |
| App Store | Yes; Apple may reject a site-only wrapper | Yes, from Replit | Yes | No |
| Google Play | Yes | Not yet supported by Replit; publish outside it | Yes | No |
| Phone features | What the shell adds | Through Expo modules | All platform APIs | Browser features only |
| Needs a Mac | For Capacitor’s iPhone build, yes; services do it for you | No (cloud build) | Yes, for the iPhone build | No |
Replit statements from docs.replit.com, read 12 October 2026; Apple guideline 4.2 read 7 October 2026.
Frequently asked questions
Yes, in four ways: wrap the deployed web app with Capacitor, Despia or Median; rebuild it in Replit with Expo (React Native); rebuild it natively in Swift; or offer it as a PWA without the App Store. In each case your Replit backend can stay as it is.
Not at the moment. Replit’s documentation says: “Publishing to Google Play is not yet supported by Replit.” You can build the Android app with Expo in Replit and publish it outside Replit, or use a wrapper or a native rebuild.
No. A wrapper shows your web app inside a native shell. React Native is a rebuild: the screens are written again in JavaScript and run as a native app. Replit says React Native “compiles your JavaScript to real native code, not a web view.”
Only if it offers more than the website. Apple’s guideline 4.2 says an app should “elevate it beyond a repackaged website.” Add native features such as push notifications, or rebuild the core screens.
No. In all four ways the backend keeps running on Replit and the app connects to it, so users sign in with the accounts they already have.
Not for a PWA, for most paid wrapper services, or for Replit’s Expo route, which builds in the cloud. A native iPhone app and a Capacitor iPhone build need a Mac with Xcode.
Native iPhone and Android apps. Start free.
One project, two native apps: Swift for iPhone, Kotlin for Android.
Keep reading
- Can Replit build mobile apps?
Replit’s own Expo route, from preview to release.
- Capacitor vs Despia
Two ways to wrap a web app, compared.
- Migrate a Lovable app to a mobile app
The same question for Lovable apps.
- Mobile web to app
Moving your users once the app exists.