Going native
React Native and Expo, when you truly need a real app.
Rung two is a genuinely native app, and the leading way to build one with these tools is React Native, Meta's framework for turning a single codebase into real iOS and Android apps. Unlike a wrapped website, React Native renders actual native interface elements, so it looks and feels like a true platform app, and its performance holds up for complex, animation-heavy work.
The friendly on-ramp is Expo, the managed toolkit that sits on top of React Native. Expo handles the painful parts (building, updating, submitting) so you can start from a template and preview on your own phone in minutes, no Xcode required just to see it run. Agents know Expo well:
Start a new Expo (React Native) app from a template, build a simple version of my idea, and give me a QR code so I can preview it on my phone with the Expo Go app.The catch: it's a different codebase
Here's what to know before you commit. React Native uses React, the same idea behind a lot of web apps, but it is not your website. You don't write HTML and CSS; you use native components, and a lot of your web code and libraries won't carry over directly. So going native usually means building a second app alongside your website, not flipping a switch on the one you have.
That's why we save it for a real need: an app that must feel perfectly native, lean hard on the camera or sensors, work reliably offline, or be discoverable in the App Store. If that's not you, the PWA on the previous rung or a wrapper on the next one gets you there with far less duplication.
