expo-web-to-native

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

Updated Sep 13, 2026
One-click install
npx skills add https://github.com/aadilmallick/myfitness-pal-clone --skill expo-web-to-native-aadilmallick
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: expo-web-to-native
Source: https://github.com/aadilmallick/myfitness-pal-clone/tree/main/.agents/skills/expo-web-to-native
Command: npx skills add https://github.com/aadilmallick/myfitness-pal-clone --skill expo-web-to-native-aadilmallick

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Moving an existing web React app (Next.js, Vite, CRA) to native mobile has no transpiler — it requires a screen-by-screen migration strategy, and teams often get stuck deciding what to port, how web idioms map to native, and how to verify the result. ## Core Features & Use Cases - Strangler-fig migration plan: Assess and bucket every route (port-as-is, nativize-now, nativize-later, hybrid), ship a DOM-component shell on day one, then nativize screens by value. - Web-to-native idiom maps: Reference tables translate DOM elements, CSS, routing, storage, networking, and third-party SDKs (Stripe, maps, analytics) to their Expo/React Native equivalents. - Native redesign playbook: Maps web UX patterns to @expo/ui SwiftUI/Compose components, Expo Router navigation, haptics, and motion so screens feel OS-native. - Run-verified parity checks: Compare the running web app (agent-browser) against the native screen (argent/simulator) for content and behavior, including motion recordings. - Use Case: You have a Next.js SaaS dashboard and want an App Store app. The skill produces a worklist, shells the whole UI in DOM components immediately, then nativizes the hot screens one per iteration until the worklist is empty. ## Quick Start Ask the agent to use the expo-web-to-native skill to assess your web React repository and produce a migration worklist, then drive the screen-by-screen native migration as a goal loop.

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 Next.js app to a native mobile app?

There is no transpiler; you migrate screen by screen with Expo. Scaffold an Expo Router shell mirroring your routes, run the whole web UI in DOM components ('use dom') on day one, then nativize high-value screens using @expo/ui and Expo Router.

How to reuse web React code in React Native?

Use Expo DOM components ('use dom') to run existing web screens inside native routes immediately. Then strangle screens incrementally: replace DOM elements with View/Text, CSS with StyleSheet or NativeWind, and React Router with Expo Router.

Does localStorage work in React Native?

Not by default, but expo-sqlite provides a polyfill: import 'expo-sqlite/localStorage/install' to get a global localStorage so existing code works as-is. Note there is no sessionStorage equivalent, and cookies should move to tokens in expo-secure-store.

Can I use Stripe in an Expo app for subscriptions?

Not for digital goods or subscriptions — Apple and Google require in-app purchases via store IAP (typically RevenueCat), taking roughly 15-30%. Stripe's React Native SDK (@stripe/stripe-react-native) is allowed only for physical goods and services.

Why does my migrated screen build 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 agent-browser and the native screen with argent or simctl, then compare structure and behavior for the same route.

Do I need a development build to use @expo/ui or DOM components?

No. On Expo SDK 56+, both @expo/ui and DOM components run in Expo Go without a dev build. A development build via expo-dev-client is only needed when you add custom native modules.