rnBuilt for React Native

Analytics & Monitoring
for React Native

Expo and bare RN — same package. JS errors, native crashes from both iOS and Android, fetch/axios tracing, and React Navigation observers. Hermes-compatible source maps for clean stack traces.

  • Expo (managed + dev-client) and bare RN — single package
  • JavaScript error capture via ErrorUtils + global handler
  • Native crash on iOS (Mach signals) and Android (libsignal)
  • fetch and axios outgoing-call tracing
  • React Navigation v6/v7 observer integration
  • Hermes-compatible source-map upload via the CLI
typescript
1// In your App.tsx entrypoint
2import JustAnalytics from "@justanalyticsapp/react-native";
3
4JustAnalytics.init({
5 siteId: "YOUR_SITE_ID",
6 environment: "production",
7});
8
9export default function App() {
10 return <RootNavigator />;
11}
Active Users
0+12%
Pageviews
0+8%
Errors
0resolved
Uptime
0%all green

Built for React Native apps

Expo, bare RN, or hybrid — same npm package. One dashboard for JS + iOS + Android crashes.

JS + native crash

ErrorUtils.setGlobalHandler catches every uncaught JS error. Native crashes flow through the iOS / Android crash handlers into the same dashboard.

Network tracing

Patches global fetch and axios at init. Every request becomes a span with URL, status, and timing — no per-call wiring.

Screen tracking

React Navigation observer (v6/v7). Screen views feed into funnels, replay, and session timeline.

Hermes source maps

CLI uploads the .map alongside the bundle so minified JS stack traces resolve to original source files.

Frame-rate tracking

JSC and Hermes frame timing captured via UIManager hooks. Identifies which screens drop frames on which device classes.

Alert rules

Crash-free-session-rate, p95 startup, JS-vs-native error split per platform. Email, webhook, or PagerDuty.

App.tsx setup

npm install, init at the entry point, mount the Navigation observer. Done.

# Install (Expo: managed + dev-client)
npx expo install @justanalyticsapp/react-native

# bare RN
npm install @justanalyticsapp/react-native
cd ios && pod install

# App.tsx
import { NavigationContainer } from '@react-navigation/native';
import JustAnalytics, { JANavigationObserver } from '@justanalyticsapp/react-native';

JustAnalytics.init({
  siteId: process.env.EXPO_PUBLIC_JA_SITE_ID,
  environment: __DEV__ ? 'development' : 'production',
  captureNetwork: true,
  captureCrashes: true,
});

export default function App() {
  return (
    <NavigationContainer
      onStateChange={JANavigationObserver.onStateChange}
      onReady={JANavigationObserver.onReady}
    >
      <RootStack />
    </NavigationContainer>
  );
}

Ready to simplify your stack?

Replace five tools with one platform. Start with the free tier or try Pro free for 7 days.

Start 7-Day Free Trial