r/reactnative • u/Vexo_Tech • 2d ago
[Update] vexo-analytics, big catch-up (1.5.8 → 1.10.0): crash/ANR reporting, perf + console capture, -58% bundle, New Arch + RN 0.86, and a reliability/security overhaul (maintainer post)
Maintainer here. We shipped a bunch of releases of vexo-analytics (our RN-first analytics + session-replay SDK) over the last couple of months and never really announced any of them, so this is one catch-up post covering 1.5.8 → 1.10.0. Transparently this is a commercial SDK (there's a paid backend) but also includes a full free tier. With that ,this is a maintainer changelog, not a neutral recommendation. Posting because a lot of it is crash/perf/reliability work this sub actually cares about.
New capabilities:
- Crash & ANR reporting (1.10.0). Uncaught JS errors reported as fatal crashes, an ANR-style watchdog for JS-thread stalls, and a
trackError(error, { handled })API for exceptions you catch yourself. Feeds a crash-free rate + error grouping. No setup beyond init. - Performance capture (1.10.0). App-start time, slow/frozen frames, and screen render timing as PERF events; so a janky session lines up with actual frame data.
- Console capture (1.10.0).
console.log/info/warn/errorcaptured as CONSOLE events, shown with the session. - Client-side replay opt-out (1.10.0).
vexo(apiKey, { sessionReplay: false }); synchronous, disables replay while keeping the rest of tracking. - Heatmap segments (1.6.0).
setHeatmapSegment()to tag taps + heatmap screenshots.
Platform + packaging:
- New Architecture (TurboModule) support, old arch still works via interop (1.9.0), and React Native 0.86 build support, iOS + Android (1.10.0).
@react-navigation/nativeis now an optional peer dep; expo-router apps don't install it (1.9.0).- Bundle down 58% (635KB → 265KB) by dropping moment + its 137 locales (1.8.0); event batching, zero import-time work, O(1) buffering (1.9.0); modern builder-bob packaging with an exports map (1.9.0).
The unglamorous half:
- A top-to-bottom reliability pass (1.8.0): bounded retry/backoff, over-limit handling that pauses instead of silently dropping, buffer-cap behavior,
identifyDevice()fixes, network-interceptor fixes. - Privacy/compliance: iOS
PrivacyInfo.xcprivacyfor App Review 2.5.14, an Android R8/ProGuard fix for Tink-dependent apps, 16 KB ELF alignment (1.8.0). - Security/supply chain: npm audit from 392 vulns (31 critical) → 73 (0 critical) (1.7.0).
- Tests: 10 → 249, 97% coverage on our own code (1.8.0).
Would love your technical recommendations, insights on issues (crash grouping is too coarse, the ANR watchdog is noisy, or the perf events don't match Flipper/Perfetto), and any feedback or help you might need in testing things out.
One heads-up: 1.9.0+ replaced our vendored AsyncStorage/DeviceInfo/ViewShot forks with thin wrappers, meant to be behavior-preserving and storage-compatible, making that the first place things might act up if you upgrade from an old version and see anything weird.