| name | stack-expo |
| description | Expo platform knowledge overlay for the ETYB team. Loads when work involves the Expo ecosystem — Expo SDK, Expo Router, EAS Build / Submit / Update / Workflows / Hosting, expo-dev-client, Expo Modules API, Continuous Native Generation, Hermes, the New Architecture (Fabric + TurboModules), Expo DOM Components, Expo API Routes, app.json / app.config.js, the `npx expo` CLI, and the wider expo-* package family.
Triggers: expo, expo go, expo router, expo sdk, expo cli, eas, eas build, eas update, eas submit, eas workflows, eas hosting, eas insights, eas cli, expo-dev-client, dev client, custom dev client, expo modules, expo modules api, expo dom, dom components, expo api routes, app.json, app.config.js, app.config.ts, app config plugin, expo config plugin, prebuild, expo prebuild, continuous native generation, cng, hermes, jsc, fabric, turbomodule, turbo modules, new architecture, bridgeless, react native, react-native, metro, metro bundler, expo-router, expo-image, expo-file-system. |
| license | MIT |
| compatibility | ETYB stack pack — Designed for Claude Code, OpenAI Codex, Google Antigravity, and compatible AI coding agents |
| metadata | {"author":"e-t-y-b","version":"5.0.0","category":"stack-pack","last_verified_release":"Expo SDK 55 (React Native 0.83, React 19.2)","last_verified_on":"2026-05-14","applies_to_roles":["mobile-architect","frontend-architect","devops-engineer","qa-engineer"]} |
| authoritative_sources | {"primary":[{"name":"Expo Documentation","url":"https://docs.expo.dev/","type":"official_docs"},{"name":"Expo SDK API Reference","url":"https://docs.expo.dev/versions/latest/","type":"api_reference"},{"name":"Expo Changelog","url":"https://expo.dev/changelog","type":"changelog"},{"name":"Expo Blog","url":"https://blog.expo.dev/","type":"changelog"},{"name":"EAS Build Docs","url":"https://docs.expo.dev/build/introduction/","type":"official_docs"},{"name":"EAS Update Docs","url":"https://docs.expo.dev/eas-update/introduction/","type":"official_docs"},{"name":"EAS Submit Docs","url":"https://docs.expo.dev/submit/introduction/","type":"official_docs"},{"name":"EAS Workflows Docs","url":"https://docs.expo.dev/eas-workflows/get-started/","type":"official_docs"},{"name":"EAS Hosting Docs","url":"https://docs.expo.dev/eas/hosting/introduction/","type":"official_docs"},{"name":"Expo Router Docs","url":"https://docs.expo.dev/router/introduction/","type":"official_docs"},{"name":"Expo Modules API","url":"https://docs.expo.dev/modules/overview/","type":"official_docs"},{"name":"Expo DOM Components","url":"https://docs.expo.dev/guides/dom-components/","type":"official_docs"},{"name":"Continuous Native Generation","url":"https://docs.expo.dev/workflow/continuous-native-generation/","type":"official_docs"},{"name":"Expo GitHub","url":"https://github.com/expo","type":"source_code"},{"name":"React Native Releases","url":"https://github.com/facebook/react-native/releases","type":"changelog"}]} |
| delegate_to_skills | [{"skill":"expo-dev-client","covers":["expo-dev-client","custom dev clients","TestFlight distribution"]},{"skill":"expo-api-routes","covers":["Expo Router API routes","EAS Hosting"]},{"skill":"expo-deployment","covers":["App Store submission","Play Store submission","EAS Submit","web hosting"]},{"skill":"expo-cicd-workflows","covers":["EAS Workflows","Expo CI/CD"]},{"skill":"expo-tailwind-setup","covers":["NativeWind v5","Tailwind v4 in Expo"]},{"skill":"use-dom","covers":["Expo DOM Components","webview embedding"]},{"skill":"upgrading-expo","covers":["SDK upgrades","Expo dependency migration"]},{"skill":"building-native-ui","covers":["Expo Router fundamentals","styling","navigation","animations","native tabs"]},{"skill":"native-data-fetching","covers":["fetch","React Query","SWR","Expo Router data loaders"]},{"skill":"vercel-react-native-skills","covers":["React Native + Expo performance","lists","animations","native modules"]}] |
| products_covered | [{"name":"Expo SDK","drift_risk":"high","notes":"Quarterly major releases; SDK 55 (Feb 2026) bundles RN 0.83 + React 19.2; APIs rename ('next' suffix), packages graduate or get retired per release"},{"name":"Expo Router","drift_risk":"high","notes":"File-based router still adding capabilities (typed routes, data loaders, SSR alpha, API routes); behavior diff each SDK"},{"name":"EAS Build","drift_risk":"high","notes":"Image releases monthly; iOS precompiled binaries + Apple Silicon machines; cache policy changes; pricing tiers shift"},{"name":"EAS Update","drift_risk":"high","notes":"Hermes bytecode diffing, phased rollouts, branch/channel mapping evolving; replaces CodePush after App Center retirement (Mar 2025)"},{"name":"EAS Submit","drift_risk":"medium","notes":"App Store Connect + Play Console submission flows; metadata + ASC API key plumbing"},{"name":"EAS Workflows","drift_risk":"high","notes":"YAML CI/CD in .eas/workflows/; new actions added per release; Maestro integration steady"},{"name":"EAS Hosting","drift_risk":"high","notes":"GA 2025 — Cloudflare-Workers-backed serverless host for Expo Router web + API routes; routing/limits still maturing"},{"name":"Expo Go","drift_risk":"medium","notes":"Dev sandbox; cannot run arbitrary native modules — config-plugin or out-of-tree libs require a dev client"},{"name":"expo-dev-client","drift_risk":"medium","notes":"Recommended replacement for Expo Go for any real product; matrix of native modules tied to build, not runtime"},{"name":"Expo Modules API","drift_risk":"medium","notes":"Swift/Kotlin module authoring; JSI-backed; consistent surface but evolves with RN architecture"},{"name":"Continuous Native Generation (CNG)","drift_risk":"medium","notes":"Recommended pattern: do not commit ios/ and android/ folders; regenerate via `npx expo prebuild`"},{"name":"Expo DOM Components","drift_risk":"medium","notes":"Run web code (HTML/CSS/React) inside a webview on native; bridges via marshalled props/messages"},{"name":"Expo API Routes","drift_risk":"high","notes":"+api.ts files; runtime is EAS Hosting workers; cold-start, KV, ratelimits diff from Vercel/Node"},{"name":"New Architecture (Fabric + TurboModules)","drift_risk":"high","notes":"Default in SDK 51+, mandatory in SDK 53+; bridgeless-only in RN 0.82+; many older libs still being ported"},{"name":"Hermes","drift_risk":"low","notes":"Default and only JS engine in SDK 52+; JSC removed"},{"name":"app.json / app.config.js","drift_risk":"medium","notes":"Schema additions per SDK; config plugin contract stable but gains hooks"},{"name":"Metro bundler","drift_risk":"medium","notes":"RN's bundler; Expo wraps it; SDK 55 added module-graph improvements + tree-shaking flags"},{"name":"expo-doctor","drift_risk":"low","notes":"Dependency + native module sanity checker; checks expand per SDK"},{"name":"Snack","drift_risk":"low","notes":"Browser playground; latest SDK supported within ~2 weeks of release"},{"name":"Push notifications (Expo Push)","drift_risk":"medium","notes":"Expo Push wraps FCM/APNs; FCMv1 only since Jun 2024; APNs token auth required"}] |