Add performance monitoring to Expo apps with EAS Observe
EAS Observe tracks startup, navigation, and custom-event performance from production Expo apps, with CLI queries available.
Why it matters
Instrument production Expo applications with startup, navigation, and custom-event performance tracking, then query and analyze metrics from the command line or dashboard to diagnose slow launches, main-thread contention, and per-route bottlenecks.
Outcomes
What it gets done
Wrap app root with AppMetricsRoot or ObserveRoot HOC and call markInteractive to track time-to-interactive
Integrate Expo Router or React Navigation to capture per-route navigation metrics automatically
Query metrics summaries, routes, events, and versions via eas observe CLI commands with JSON or table output
Interpret TTI frameRate parameters and diagnostic patterns to distinguish slow-but-smooth startup from hard blocks
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-expo-observe | bash Overview
EAS Observe
A skill for adding EAS Observe performance tracking to Expo projects and querying the collected data via CLI commands. Use when instrumenting an Expo app with `expo-observe` (root wrappers, interactive markers, navigation integrations) or running `eas observe:*` commands to retrieve performance data.
What it does
EAS Observe tracks startup, navigation, and custom-event performance from production Expo apps. It provides five CLI commands (eas observe:metrics-summary, metrics, routes, events, versions) for querying performance data.
When to use - and when NOT to
Use EAS Observe when you need to add expo-observe to an Expo project - specifically when wrapping your root layout with AppMetricsRoot (SDK 55) or ObserveRoot (SDK 56+), calling markInteractive() (global on SDK 55, via the useObserve() hook on SDK 56+), integrating per-route metrics through Expo Router or React Navigation, or querying performance data using the eas observe:* CLI commands. Do NOT use this skill for tasks outside EAS Observe's product scope - it covers only the expo-observe SDK, the five eas observe:* CLI commands, and the official Expo Router/React Navigation integrations documented at https://docs.expo.dev/eas/observe/.
Inputs and outputs
You provide an Expo project (SDK 55+ for AppMetricsRoot, SDK 56+ for ObserveRoot), install expo-observe, wrap your root layout component, and optionally call markInteractive() or use the useObserve() hook. For navigation metrics, you integrate the Expo Router or React Navigation plugins. EAS Observe then streams performance events to the EAS backend. You can query the data by running CLI commands with flags for output formats (table or JSON).
Integrations
- Expo Router integration: Per-route performance tracking for Expo Router navigation, documented at https://docs.expo.dev/eas/observe/integrations/expo-router/
- React Navigation integration: Per-route metrics for React Navigation-based apps, documented at https://docs.expo.dev/eas/observe/integrations/react-navigation/
- EAS CLI: Five query commands (
metrics-summary,metrics,routes,events,versions) for terminal-based metric retrieval with table and JSON output modes
Who it's for
This skill helps you install the SDK, configure the root wrapper and interactive markers, set up navigation integrations, and query metrics via CLI flags.
Source of truth: Always consult the canonical docs when API details matter:
https://docs.expo.dev/eas/observe/ - always consult the canonical docs when API details matter, especially get-started, configuration, integrations, and the metrics reference. EAS Observe is evolving; this skill's references are written to stay accurate but may lag the docs.
Source README
EAS Observe
When to Use
Use this skill when you need use for anything related to EAS Observe - adding expo-observe to an Expo project (AppMetricsRoot/ObserveRoot HOC, markInteractive, the useObserve hook, and the Expo Router / React Navigation integrations for per-route metrics), querying via the EAS CLI (eas observe:metrics-summary,...
EAS Observe tracks startup, navigation, and custom-event performance from production Expo apps.
Source of truth: https://docs.expo.dev/eas/observe/ - always consult the canonical docs when API details matter, especially get-started, configuration, integrations, and the metrics reference. EAS Observe is evolving; this skill's references are written to stay accurate but may lag the docs.
Which reference to read
The three reference files in ./references/ cover the three things people typically need this skill for:
- Adding EAS Observe to a project →
./references/setup.md. Install, wrap the root layout (AppMetricsRooton SDK 55,ObserveRooton SDK 56+), callmarkInteractive()(global on SDK 55, via theuseObserve()hook on SDK 56+), and optional per-route navigation metrics through the Expo Router / React Navigation integrations. - Querying metrics from the terminal →
./references/queries.md. The fiveeas observe:*commands -metrics-summary,metrics,routes,events,versions- with flags, table layouts, JSON shapes, and common workflows. - Reading a dashboard or CLI output →
./references/metrics.md. Target thresholds per metric, what the TTIframeRate.*params mean, and diagnostic patterns for telling slow-but-smooth startup apart from main-thread contention or hard blocks.
Quick links to the docs
- Get started: https://docs.expo.dev/eas/observe/get-started/
- Dashboard guide: https://docs.expo.dev/eas/observe/dashboard/
- Metrics reference: https://docs.expo.dev/eas/observe/reference/metrics/
- Expo Router integration: https://docs.expo.dev/eas/observe/integrations/expo-router/
- React Navigation integration: https://docs.expo.dev/eas/observe/integrations/react-navigation/
- Configuration: https://docs.expo.dev/eas/observe/configuration/
Limitations
- Use this skill only when the task clearly matches its upstream product or API scope.
- Verify commands, API behavior, pricing, quotas, credentials, and deployment effects against current official documentation before making changes.
- Do not treat generated examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.