---
title: "Expo Router Navigation: review, setup & limitations · Undominated.ai"
canonical: https://undominated.ai/skills/expo-expo-router/
description: "File-based routing for Expo Router apps: route groups, NativeTabs, native stacks, headers and search bars, modals and form sheets, with SDK-version-aware option names."
---

# Expo Router Navigation: review, setup & limitations · Undominated.ai

> File-based routing for Expo Router apps: route groups, NativeTabs, native stacks, headers and search bars, modals and form sheets, with SDK-version-aware option names.

[← Explore all skills](/skills/)

MOBILE DEVELOPMENT / Expo

# Expo Router Navigation

File-based routing for Expo Router apps: route groups, NativeTabs, native stacks, headers and search bars, modals and form sheets, with SDK-version-aware option names.

 [See setup guidance ↓](#setup)[Original source ↗](https://github.com/expo/skills/tree/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-router)

SOURCE REVIEW

 Reviewed 2026-10-07
 Evidence 6 linked sources
 Publisher Expo
 Licence [MIT ↗](https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/LICENSE)
 Revision d4f484024fec
 [Read what was—and wasn’t—checked ↓](#review)

“Navigation and routing for Expo Router. Covers file-based routes, groups and dynamic routes, folder organization, Link with previews and context menus, native Stack, page titles, modals and form sheets, NativeTabs, headers and toolbars, and header search bars.”

 [Expo · upstream description ↗](https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-router/SKILL.md) Our analysis follows below.

01 / THE REASONING

## Why this made the selection.

 - Version-aware guidance throughout: headerLargeTitleEnabled for SDK 56+ versus the deprecated headerLargeTitle, and expo-router/react-navigation instead of direct react-navigation imports.
- Structural discipline is explicit rather than implied: routes belong in app with no co-located components, kebab-case files, old route files removed on moves, and stacks defined in _layout files.

### A good fit for

 - Adding tab, stack, modal or form-sheet navigation to an Expo app
- Migrating JavaScript tabs to NativeTabs on current SDKs

### Weigh up before choosing

 - Several flagship patterns are iOS-gated (header search bar iOS only, Apple Zoom iOS 18+, liquid-glass sheet styling iOS 26+); Android equivalents need separate verification.
- The NativeTabs example imports from unstable-native-tabs, so this skill must be re-checked against the Expo changelog as the API stabilizes.

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-router/SKILL.md
- plugins/expo/skills/expo-router/references/route-structure.md
- LICENSE

### Our findings

 - The skill prefers expo-router semantic Color over raw PlatformColor and Stack.SearchBar over custom search UI.
- The route-structure reference keeps the single-responsibility rule that the app directory holds routes only.
- A feedback loop (submit-expo-feedback command and expo-skill-feedback skill) is built into the skill for reporting stale guidance.

### Not established by this review

 - No Expo Router app was scaffolded or run with this skill.
- NativeTabs, form sheets and search-bar behavior were not exercised on a device or simulator.

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 ↗](https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/README.md)

DOCUMENTED COMMAND

 npx skills add https://github.com/expo/skills/tree/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-router --skill expo-router Copy command ↗

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

 - Install the complete skill directory with its references; a copied SKILL.md alone loses the tabs, headers, search and form-sheet references.
- 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
- An Expo Router project, ideally on a recent SDK for the version-gated options

### Compatibility

Agent Skills-compatible coding agents · Expo Router projects on recent Expo SDKs

### Project source reads and route-file edits

 - Read the app directory, layouts and navigation configuration
- Create, move and delete route and layout files when authorized
- Restructuring navigation can break deep links; verify by running the app

### Cost model

The instruction package is MIT-licensed; agent usage and store or hosting fees have their own costs.

04 / FOLLOW THE EVIDENCE

## The source trail.

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

 - [Skill definition at reviewed revision ↗](https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-router/SKILL.md) Checked 2026-10-07 https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-router/SKILL.md Supports: summary, upstreamDescription, whySelected, bestFor, limitations, review, compatibility, access
- [Reviewed reference or helper: references/route-structure.md ↗](https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-router/references/route-structure.md) Checked 2026-10-07 https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/plugins/expo/skills/expo-router/references/route-structure.md Supports: review, whySelected
- [Upstream license or licensing declaration ↗](https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/LICENSE) Checked 2026-10-07 https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/LICENSE Supports: license
- [Publisher installation and project documentation ↗](https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/README.md) Checked 2026-10-07 https://github.com/expo/skills/blob/d4f484024fec15196bfd3c272e953e3f983972cf/README.md Supports: install, compatibility, access
- [Skills installer source formats and selective installation ↗](https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/README.md) Checked 2026-10-07 https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/README.md Supports: install
- [Installer implementation: full commit SHA fallback ↗](https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/src/git.ts) Checked 2026-10-07 https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/src/git.ts Supports: install

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### Expo Design System ↗ Builds a token theme (color, spacing, typography, radius, shadow, motion) plus variant/size/state component conventions inside an Expo app, with grep-based drift audits and a named gallery of AI-generated-looking anti-patterns.](/skills/expo-expo-design-system/)[### 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.](/skills/expo-expo-web-to-native/)[### Vercel React Native Skills ↗ Provides React Native and Expo patterns for scrolling, animations, native navigation and dependency layout.](/skills/vercel-labs-react-native-skills/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Choose a toolkit](/tools/)
- [Inspect execution hosts](/agents/)
- [Check tool access](/mcp-servers/)
- [Check project dependencies](/check-repo/)
