Dev & Engineering exporeact-nativeweb-to-native-migrationexpo-routerexpo-domiosandroid

Expo Web-to-Native Migration

Turn an existing React website into a shippable Expo app, screen by screen.

FollowSkills review · FSRS-2.0
Not recommended
52/ 100 5-point scale 2.6 / 5
Trust14 / 25 · 2.8/5

The skill scopes migration, backend placement, and absolute native API paths, with no evidence of malware, credential theft, or covert exfiltration. However, it instructs agents to install global npm tools, use browser/simulator tooling and potentially EAS services, and supports unattended goal loops without stepwise confirmation, least-privilege guidance, data-flow disclosure, rollback, or safe recovery procedures; 11 points are deducted.

Reliability9 / 20 · 2.3/5

The sequence, references, and verification workflow are internally coherent across DOM shelling, native conversion, data, and shipping. Still, the supplied files contain no committed tests or reproducible execution evidence; operation depends on agent-browser, argent, Expo SDK behavior, and other skills, while abnormal-input, missing-tool, and installation-failure diagnostics are limited. 11 points are deducted, with the static ceiling applied.

Adaptability10 / 15 · 3.3/5

The audience is clear: existing Next.js, Vite, or CRA React applications, while the document explicitly excludes fresh native builds. Trigger conditions and non-fit cases are reasonably clear, but Chinese-language support and mainland-China reachability of the tooling/services are not addressed, and project, platform, and backend boundary evidence is limited; 5 points are deducted.

Convention9 / 15 · 3.0/5

The skill is well layered and links to focused references for idiom mapping, native UX, device verification, and goal execution. It declares a name, version 1.0.0, and MIT license, and repository context includes version-check CI. It does not identify a maintainer, update path, changelog, dependency versions, or systematic FAQ/troubleshooting coverage; 6 points are deducted.

Effectiveness6 / 15 · 2.0/5

The skill gives a usable migration spine from assessment through DOM shell, screen-by-screen native redesign, verification, and release, and its mapping tables can directly guide implementation. However, the outcome depends on several external skills, project-specific configuration, running web/native apps, and backend/authentication availability; static evidence cannot show a directly usable final result. 9 points are deducted, with the static ceiling applied.

Verifiability4 / 10 · 2.0/5

The evidence consists mainly of revision-pinned skill documentation, internal references, and repository CI maintenance checks, making the principal claims auditable. There are no key-path tests, real execution records, or independent corroborating sources; the external Expo article is only cited as a reference. 6 points are deducted, with the static ceiling applied.

Evidence confidence:Low Reviewed Jul 20, 2026 Reviewed revision 8bd359f8a44d
Before you use it
  • This is a source-only review; migration, tool installation, and iOS/Android behavior were not executed.
  • Global installation of agent-browser and argent, simulator use, and goal-loop automation may create external state changes; users should confirm permissions, network, authentication, and rollback plans.
  • Chinese-language support and mainland-China network reachability are not documented, and the workflow depends heavily on other Expo skills and project-specific environment.
  • Claims about SDK 56, @expo/ui, DOM components, and store payment policy were not independently verified from the supplied material.
See the full review method →

What does this skill do, and when should you use it?

This open-source skill is part of Expo’s official skills collection and guides migrations from Next.js, Vite, or CRA React apps to iOS and Android with Expo. Its approach is incremental: create a native Expo shell, run the complete web UI through DOM components, then replace screens with native designs according to product value. It covers route mapping, backend boundaries, data and authentication changes, native redesign, and runtime verification. It is intended for teams with an existing React web app, not for building a native app from scratch.

Reads the existing web project’s routes, pages, server routes, data-fetching patterns, authentication, styling, and third-party SDKs, then creates and maintains a migration-progress.md worklist; uses create-expo-app to scaffold an Expo shell and maps web routes to Expo Router; guides the team through running the full web UI in DOM components before replacing screens with @expo/ui, Expo Router, and React Native primitives; routes data, hosting, and release work through expo-data-fetching, EAS Hosting, and eas-app-stores; requires agent-browser to inspect the web original and argent to drive the native simulator while comparing content and behavior.

  1. A team with an existing Next.js app that wants a mobile release before gradually introducing native screens.
  2. A developer maintaining a Vite or CRA React codebase who needs to migrate pages to iOS and Android by priority.
  3. A product team that wants low-value pages to remain DOM-based while converting high-traffic or gesture-heavy screens to native.
  4. An engineer assessing how server routes, cookie sessions, localStorage, environment variables, or browser SDKs must change for mobile.

What are this skill's strengths and limitations?

Pros
  • Provides an end-to-end migration order from assessment through store delivery.
  • Separates screens from backend concerns and keeps the app shippable throughout the migration.
  • Covers web-to-native changes involving routing, DOM, CSS, data, authentication, storage, and third-party SDKs.
  • Defines a runtime verification workflow using agent-browser and argent.
Limitations
  • Assumes an existing React web application; for a fresh native build, it recommends using expo-router instead.
  • Each DOM screen carries an approximately 2 MB web runtime, so keeping everything DOM-based can increase app weight.
  • If agent-browser or argent is unavailable, the guide requires installing it, but the supplied SKILL.md does not provide the installation procedure.
  • The source documents no test suite, platform support matrix, or real migration case studies.

How do you install this skill?

Install the full Expo Skills collection with npx skills@latest add expo/skills --skill '*', follow the installer prompts, then restart or refresh the Agent session. Codex users can also run codex plugin add expo@openai-curated to install the official plugin. The supplied source does not document a complete standalone install command for only expo-web-to-native.

How do you use this skill?

After installation, ask an Agent something like: Migrate this existing Next.js React app incrementally to an Expo iOS/Android app. First assess the routes and create migration-progress.md, then scaffold the DOM-component shell. Follow the assessment, shell, and DOM stages before converting screens one at a time and checking content and behavior against the running web original.

How does this skill compare with similar options?

Unlike a one-time rewrite, this skill prescribes incremental migration: run the whole web UI in a native shell first, then convert screens by value. Unlike using DOM components alone, it calls for redesigning high-value screens to follow iOS and Android conventions.

FAQ

Does this automatically convert a website into a native app?
No. The guide states that there is no transpiler; the process is to build a native shell, run the web UI first, and migrate screens incrementally.
Can only selected screens be migrated?
Yes. Screens can be categorized as port-as-is, nativize-now, nativize-later, or hybrid, while lower-value screens remain DOM-based.
Does using this skill require paid Expo services?
The skill is MIT-licensed. The documentation places eas-app-stores and EAS Hosting among service skills and notes EAS-related release steps; it does not provide pricing.

More skills from this repository

All from expo/skills

Dev & Engineering

Expo Native UI Builder

Build native-feeling, cross-platform interfaces with @expo/ui.

Dev & Engineering

Expo Brownfield Integrator

Guides teams in incrementally embedding Expo and React Native into existing native iOS or Android applications.

Dev & Engineering

Expo DOM Components

Reuse web code and browser-only libraries inside Expo native apps with incremental migration support.

Dev & Engineering

Expo App Structure Guide

A clear, scalable starting layout for a brand-new Expo Router app.

Dev & Engineering

Expo Development Client Builder

Build and distribute Expo development clients for native-code testing.

Dev & Engineering

Expo App Store Release Assistant

Build and ship Expo apps to the App Store, Google Play, and TestFlight with EAS.

Dev & Engineering

Expo Skill Eval

End-to-end testing for Expo skill triggering, code quality, and runtime rendering.

Automation & Ops

EAS Observe Performance Guide

Helps Expo teams instrument, query, and interpret production startup, navigation, and custom-event performance metrics.

Dev & Engineering

Expo Data Fetching

Practical networking guidance for Expo apps, covering API calls, caching, offline behavior, and authentication.

Dev & Engineering

Expo Skill Feedback

Collects feedback about Expo skills or Expo itself and manages anonymous usage telemetry.

Dev & Engineering

Expo Integration Examples

Adapt Expo’s official patterns for third-party integrations.

Design & Frontend

Expo Native UI Guide

Helps Expo developers build responsive screens with Apple-informed styling and a native-feeling experience.

Dev & Engineering

Expo SDK Upgrade Assistant

Guides Expo SDK upgrades, dependency fixes, and compatibility cleanup.

Dev & Engineering

Expo EAS Hosting Deployments

Deploy Expo websites and API routes while configuring secrets, domains, and the edge runtime.

Dev & Engineering

Expo Tailwind Styling Setup

Configure Tailwind CSS v4, NativeWind v5, and cross-platform styling for Expo apps.

Dev & Engineering

Expo Native Module Migration Assistant

Move an existing Expo Swift module from the 1.0 DSL to the 2.0 macro API without changing its JavaScript contract.

Dev & Engineering

Expo Router Navigation Guide

Design file-based routes and native navigation for Expo apps.

Dev & Engineering

EAS Cloud Simulator

Run, control, and capture Expo apps remotely when a local iOS simulator or Android emulator is unavailable.

Dev & Engineering

Expo App Clip Builder

Configure an iOS App Clip for an Expo app and launch it from web URLs.

Automation & Ops

EAS Update Health Insights

Use the CLI to measure EAS Update health, adoption, crashes, and rollout readiness.

Related skills