← Explore all skills

MOBILE DEVELOPMENT / Expo

Expo Web to Native Migration

Migrates a web React codebase to a native Expo app screen by screen: native shell first, whole web UI shippable in DOM components on day one, then strangler-order nativization with device verification.

“Migrate an existing web React app to a native iOS/Android app with Expo. Use when the user wants to turn a website into a mobile app, port a Next.js/Vite/CRA React codebase to React Native, or reuse web code on native incrementally.”

01 / THE REASONING

Why this made the selection.

  • The migration spine keeps the app shippable at every step: assess into a durable worklist, scaffold, DOM-component shell as the day-one milestone, then one nativized screen per pass in value order.
  • The false-friends idiom map and the verify-by-running parity recipe judge content and behavior on running apps rather than treating a clean build as proof.

02 / THE REVIEW RECORD

What we actually inspected.

Source review has boundaries.
A clear record is more useful than a “safe” badge.

Material inspected

  • plugins/expo/skills/expo-web-to-native/SKILL.md
  • plugins/expo/skills/expo-web-to-native/references/false-friends.md
  • LICENSE

Our findings

  • The assess step sorts every route into port-as-is, nativize-now, nativize-later or hybrid and flags third-party browser SDKs before migration starts.
  • Nativize means redesign with platform UI first and styled primitives as fallback, explicitly not a web-layout reskin.
  • The skill routes each step into existing Expo skills (expo-dom, expo-router, expo-data-fetching, eas-app-stores) instead of re-explaining their mechanisms.

Not established by this review

  • No web app was migrated with this skill.
  • DOM-component runtime size and simulator verification flows were not measured.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

Add a skill to your workflow.

Upstream setup instructions ↗

DOCUMENTED COMMAND

npx skills add https://github.com/expo/skills/tree/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-web-to-native --skill expo-web-to-native

Copying does not execute this command. It may retrieve a newer version than the reviewed source.

  1. Install the complete skill directory with its references; a copied SKILL.md alone loses the false-friends map and device-verification recipe.
  2. Choose the intended agent and project scope in the installer, then review its permissions before using the skill.

Before you start

  • Node.js/npm for this installer
  • An agent that supports the Agent Skills format
  • The web codebase to migrate and an Expo shell; simulators for verification runs

04 / FOLLOW THE EVIDENCE

The source trail.

Our notes are separate from the original resource.
Check upstream before adopting a new version.

  1. https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-web-to-native/SKILL.md

    Supports: summary, upstreamDescription, whySelected, bestFor, limitations, review, compatibility, access

  2. https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-web-to-native/references/false-friends.md

    Supports: review, whySelected, limitations

  3. https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/LICENSE

    Supports: license

  4. https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/README.md

    Supports: install, compatibility, access

  5. https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/README.md

    Supports: install

  6. https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/src/git.ts

    Supports: install

Evidence & Ask