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

9:41
Idea Pipeline, a video idea tracker Borel built, on its Ideas tab
9:41
A recipe app Borel built, with recipes grouped by meal
9:41
A budget app Borel built, showing what is left to spend this month
9:41
A workout log Borel built, with this week's totals

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.”
App Store Review Guidelines, 4.2 Minimum Functionality, Apple

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.

Paste into Borel’s chat
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.

What moves from React web app to the iPhone app
In your React web appIn the iPhone app
ThemeMoves over. Colours and fonts, from the stylesheet Borel reads and the screenshot it takes.
Routes and viewsMoves over. Each route you list becomes a SwiftUI screen.
CopyMoves over. From the deployed page and your prompt.
Components and CSSMade new. Written again as SwiftUI views; JSX doesn't run on iOS.
Your APIMade new. Reachable through Tools › Keys if it takes a key; otherwise Borel's cloud database is used.
Auth usersMade new. New accounts in the app with email and password.
The web deploymentStays. 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.