Bringing Lighthouse to the App: Building Performance Metrics for React Native
Article Summary
Indeed just open-sourced their solution to a problem every web-first company faces: how do you measure mobile app performance with the same rigor you had on the web?
The Indeed engineering team built a React Native performance measurement system that adapts Core Web Vitals for mobile apps. They've packaged it as a single React hook and open-sourced the entire implementation, complete with stricter thresholds that reflect native app expectations.
Key Takeaways
- Mobile thresholds are 40% stricter than web: TTFF under 300ms vs LCP's 2.5s
- Integration takes three steps: add hook, mark interactive, attach pan responder
- ViewJob achieved average score of 81 with P75 at 95
- Components self-report interactivity instead of algorithmic detection
- Composite scoring mirrors Lighthouse: TTI weighted at 45% as most critical
Indeed created an open-source React Native performance measurement system that brings Lighthouse-style rigor to mobile apps with stricter thresholds and simpler integration.
About This Article
Indeed lacked a standardized way to measure whether mobile performance was improving or getting worse across key React Native pages like ViewJob, SERP, and Homepage.
Indeed's engineering team built a React hook-based measurement system using React Native's InteractionManager and PanResponder to capture TTFF, TTI, and FID metrics with minimal production overhead.
The system let Indeed establish performance baselines and catch regressions. When deployed to real users, it showed that native apps need thresholds about 6x stricter than web Core Web Vitals to meet what users actually expect.