expo-web-to-native

Migrates web React apps to native iOS and Android apps with Expo.

Updated Sep 8, 2026
One-click install
npx skills add https://github.com/bmiit145/leadBee --skill expo-web-to-native-bmiit145
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: expo-web-to-native
Source: https://github.com/bmiit145/leadBee/tree/main/mobile/.agents/skills/expo-web-to-native
Command: npx skills add https://github.com/bmiit145/leadBee --skill expo-web-to-native-bmiit145

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Converting an existing web React app (Next.js, Vite, CRA) into a native mobile app has no transpiler or automated path, and teams often attempt risky big-bang rewrites. This Skill provides an ordered, incremental migration playbook that keeps the app shippable at every step. ## Core Features & Use Cases - Strangler-fig migration plan: Assess and bucket every screen (port-as-is, nativize-now, nativize-later, hybrid), scaffold an Expo Router shell, and ship the whole web UI inside DOM components on day one. - Web-to-native idiom mapping: Reference tables translate DOM elements, CSS, React Router, localStorage, cookies, and browser SDKs (Stripe, maps, OAuth) into their React Native and Expo equivalents, including the gotchas for each. - Native redesign guidance: Pattern tables map web UX (tabs, modals, dropdowns, feeds) to @expo/ui SwiftUI/Compose components, plus motion, haptics, and safe-area guidance so screens feel OS-native rather than reskinned. - Use Case: A team with a Next.js SaaS dashboard wants an iOS/Android app. The Skill drives a loop that nativizes one screen per iteration, verifying content and behavior parity against the running web app with browser and simulator agents. ## Quick Start Ask the agent to migrate your web React codebase to a native Expo app by assessing the screens, shipping a DOM-component shell first, and nativizing screens in priority order.

Frequently Asked Questions about expo-web-to-native

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I convert a React web app to a native mobile app?▼

There is no transpiler; the app migrates screen by screen. Scaffold an Expo app with Expo Router, run the whole web UI inside DOM components ('use dom') so it ships on day one, then nativize screens in priority order using @expo/ui and native navigation.

How to migrate a Next.js app to React Native with Expo?▼

Map Next.js routes to Expo Router files ([id]/page.tsx becomes [id].tsx), split async Server Components into a client fetch plus a presentational component, and replace server actions with API endpoints. Keep the backend deployed and have the app call it over HTTP.

Does localStorage work in React Native?▼

Not natively, but expo-sqlite provides a polyfill: importing 'expo-sqlite/localStorage/install' creates a global localStorage so existing web code works unchanged. There is no sessionStorage equivalent, since native apps have no session concept.

Can I use Stripe in an Expo app for subscriptions?▼

For digital goods and subscriptions, Apple and Google require in-app purchases via RevenueCat (react-native-purchases), taking roughly 15-30%; using Stripe there risks App Store rejection. Stripe's React Native SDK is allowed only for physical goods and services.

Why does my Expo screen build successfully but render blank?▼

A clean expo export only proves the screen bundles, not that it renders. Verify by running both apps: capture the web original with a browser agent and the native screen in a simulator, then compare structure and behavior for the same route.

When should I use DOM components versus fully native screens?▼

Use DOM components to ship the existing web UI immediately and for presentational screens that can stay in a webview. Nativize hot screens needing gestures, lists, or native feel, since each DOM screen carries a roughly 2 MB web runtime.