React web app to iPhone app
Turn your React web app into a real iPhone app
Borel turns a React web app into a native iPhone app without Capacitor or a React Native rewrite. Paste the address where your React web app is deployed, and Borel reads it, photographs it and writes the iPhone version in Swift with SwiftUI. You test it on a live iOS Simulator in the browser and publish to the App Store, no Mac required.
Updated




Native apps built by Borel, in the iOS Simulator.
React web app
What is a React web app made of?
React is the library most web apps are built with today. In the browser it renders components into HTML, styled with CSS, wherever you deploy them: Vercel, Netlify, your own server.
React itself also reaches native apps, but through React Native, which renders to iOS views instead of HTML. Your web components, divs and CSS don't run there as they are.
The iPhone question
What are the usual routes from React to iOS?
The first is Capacitor, a native runtime that runs your web app inside WKWebView, Apple's web view. It ships fast, needs Xcode on a Mac, and your app keeps the scroll, taps and layout of a web page, which is what Apple's guideline 4.2 is wary of.
The second is React Native: you keep React's way of thinking but rewrite the screens with its components and set up a mobile toolchain. Borel is a third route. It reads the deployed app and writes SwiftUI, Apple's own framework, so nobody rewrites by hand.
Apple's rule
Why a rebuild beats a wrapper
Apple reviews every app before it reaches the App Store, and a website in an app's frame is what its guideline 4.2 is about.
“Your app should include features, content, and UI that elevate it beyond a repackaged website. If your app is not particularly useful, unique, or “app-like,” it doesn’t belong on the App Store.”
Borel never wraps your React web app. It writes a separate app in Swift with SwiftUI, Apple’s own language and interface framework, so the screens, scrolling and controls are the iPhone’s.
Step by step
How to turn your React web app into an iPhone app
- 1
Deploy, then copy the URL
Any host works: Vercel, Netlify, Cloudflare or your own server. Paste the full https:// address of a page Borel can open without logging in.
- 2
Brief Borel like a teammate
Send the prompt below with your main routes and what each does. Attach screenshots of authenticated views, up to four per message.
- 3
Components turn into SwiftUI
Borel captures your landing route at iPhone and desktop widths, reads the theme and copy, and writes SwiftUI views with NavigationStack, List and sheets.
- 4
Run it on a simulated iPhone
The build runs in Apple's iOS Simulator on Borel's Mac, streamed to your browser free. Borel Companion, on Pro, sideloads it onto your device.
- 5
Ship without Xcode
With Pro and your Apple Developer membership, Borel archives, signs and uploads the build to App Store Connect from its own Mac.
Your first message
A prompt to start from
Put your address where it says, fill in the brackets, and send it as your first message.
Rebuild my React web app at <your address> as a native SwiftUI iPhone app. Routes: [route: what it does]. Keep the theme colours, logo and copy. Use a tab bar for [routes], email sign-in, and cloud tables for [entities].
Moving over
What moves over, and what is made new
Borel works from what your app shows, the screenshots you add and the words you write. It doesn't copy code or accounts out of another platform.
| In your React web app | In the iPhone app |
|---|---|
| Theme | Moves over. Colours and fonts, from the stylesheet Borel reads and the screenshot it takes. |
| Routes and views | Moves over. Each route you list becomes a SwiftUI screen. |
| Copy | Moves over. From the deployed page and your prompt. |
| Components and CSS | Made new. Written again as SwiftUI views; JSX doesn't run on iOS. |
| Your API | Made new. Reachable through Tools › Keys if it takes a key; otherwise Borel's cloud database is used. |
| Auth users | Made new. New accounts in the app with email and password. |
| The web deployment | Stays. Unchanged on its host. |
Frequently asked questions
No. Borel doesn't import JavaScript projects or GitHub repos. It works from the running app and your description, and writes Swift, which suits an iPhone app better than translated JSX.
Capacitor is quick, but your app stays a web page inside WKWebView, with web scrolling and controls, and you still need Xcode on a Mac to build it. Borel gives you a native SwiftUI app and builds it on its own Mac.
React Native means rewriting your screens in its components and maintaining a mobile toolchain. With Borel you describe the app, and it writes Swift, Apple's own language, for you.
Yes, if the API takes a key in a header or the address. After the first build, save it under Tools › Keys with your API's host, and ask Borel to fetch from it. Borel adds the key on its server.
Yes. The project is SwiftUI with an XcodeGen project.yml, ready to download and open in Xcode.
Paste your React app's URL
See it as a native SwiftUI app before you reach for Capacitor.