{"adoption": {"forks": 13657, "observed_at": "2026-08-28T04:12:11.937114+00:00", "stars": 51842}, "canonical_url": "https://ross.abutalabs.com/products/expo", "card": {"archived": false, "artifact_type": "framework", "description": "An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.", "domain": ["mobile-development", "web-development", "cross-platform", "frontend", "developer-tools"], "enriched": true, "function": ["mobile-framework", "frontend-framework", "build-tool", "cli", "developer-tools"], "health_score": 80, "homepage": "https://docs.expo.dev", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["expo/expo", "expo/router", "expo/expo-cli", "expo/eas-cli", "expo/expo-github-action", "expo/expo-server-sdk-node", "expo/create-react-native-app", "expo/examples"], "name": "Expo", "platform": ["cross-platform"], "pushed_at": "2026-08-26T23:27:55+00:00", "repo": "expo/expo", "stars": 51842, "tags": ["react-native", "expo", "universal-apps", "app-framework", "eas", "over-the-air-updates", "android", "ios", "web", "nodejs", "typescript"], "topics": ["mobile", "expo", "native", "web", "universal", "react", "android", "ios", "app-framework", "web-framework", "native-apps", "javascript", "framework", "frontend", "react-native", "typescript"], "urls": [], "use_cases": ["build a react native app for ios and android from one codebase", "create a cross-platform mobile app that also runs on the web", "set up over-the-air updates and app store builds without managing xcode and android studio", "scaffold a new react native project quickly", "add file-based routing and navigation to a react native app", "build and submit mobile apps to app stores from ci"], "what_it_is": "Expo is an open-source framework and toolchain for building universal native apps with React and React Native, targeting Android, iOS, and the web from a single codebase. It includes SDK libraries, a file-based router, the EAS build/deploy CLI, and managed workflows for development, testing, and release.", "when_to_avoid": ["you need deep custom native code or niche native modules not supported by the SDK", "you are building a non-React app or a pure native Swift/Kotlin project", "you require minimal app size and cannot tolerate the Expo runtime", "you need fine-grained control over every native build configuration"], "when_to_choose": ["you want a single TypeScript/React codebase for Android, iOS, and web", "you prefer managed tooling for builds, updates, and deployment", "your team is new to native mobile development", "you need rapid iteration with hot reload and cloud builds"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/expo/expo", "repo": "expo/expo", "role": "main", "score": 67}, {"path": "/repos/expo/create-react-native-app", "repo": "expo/create-react-native-app", "role": "plugin", "score": 32}, {"path": "/repos/expo/examples", "repo": "expo/examples", "role": "examples", "score": 76}, {"path": "/repos/expo/expo-cli", "repo": "expo/expo-cli", "role": "plugin", "score": 10}, {"path": "/repos/expo/router", "repo": "expo/router", "role": "mirror", "score": 10}, {"path": "/repos/expo/eas-cli", "repo": "expo/eas-cli", "role": "plugin", "score": 95}, {"path": "/repos/expo/expo-server-sdk-node", "repo": "expo/expo-server-sdk-node", "role": "sdk", "score": 95}, {"path": "/repos/expo/expo-github-action", "repo": "expo/expo-github-action", "role": "plugin", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.937114+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:19:41.032541+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63b46e484c04dbcef94c6be2a9a06fa69b200e444bf54f0d15051b697dd853b1", "fetched_at": "2026-08-28T04:12:11.937114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/expo/expo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3670, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}