@rejourneyco/react-native
v1.0.17
Published
Rejourney Session Recording SDK for React Native
Maintainers
Readme
@rejourneyco/react-native
Lightweight session replay and observability SDK for React Native. Pixel-perfect video capture with real-time incident detection.
Installation
npm install @rejourneyco/react-nativeQuick Start
import { Rejourney } from '@rejourneyco/react-native';
// Initialize with your public key
Rejourney.init('pk_live_xxxxxxxxxxxx');
// Start recording after obtaining user consent
Rejourney.start();Navigation Tracking
Rejourney automatically tracks screen changes to provide context for your session replays.
Expo Router (Automatic)
If you use Expo Router, simply add this import at your root layout (app/_layout.tsx):
import '@rejourneyco/react-native/expo-router';React Navigation
If you are using React Navigation (@react-navigation/native), use the useNavigationTracking hook in your root NavigationContainer:
import { Rejourney } from '@rejourneyco/react-native';
import { NavigationContainer } from '@react-navigation/native';
const navigationTracking = Rejourney.useNavigationTracking();
return <NavigationContainer {...navigationTracking}>{/*...*/}</NavigationContainer>;Custom Screen Names
If you want to manually specify screen names or use a different library:
For Expo Router users:
Disable automatic tracking in your initialization:
Rejourney.init('pk_live_xxxxxxxxxxxx', {
autoTrackExpoRouter: false
});Manual tracking call:
Notify Rejourney of screen changes using trackScreen:
import { Rejourney } from '@rejourneyco/react-native';
Rejourney.trackScreen('Custom Screen Name');[!NOTE]
expo-routerand@react-navigation/nativeare optional peer dependencies. Install them only if you use the related navigation helpers. The core SDK keeps those integrations out of the main bundle so apps that do not use them do not fail Metro resolution at build time.
Custom Events & Metadata
Track user actions and attach session-level context for filtering and segmentation in the dashboard.
import { Rejourney } from '@rejourneyco/react-native';
// Log custom events with optional properties
Rejourney.logEvent('signup_completed');
Rejourney.logEvent('purchase_completed', {
plan: 'pro',
amount: 29.99
});
// Attach session-level metadata (key-value context)
Rejourney.setMetadata('plan', 'premium');
Rejourney.setMetadata({
role: 'admin',
ab_variant: 'checkout_v2'
});Events = things that happened (actions, timestamped, can occur multiple times) Metadata = who the user is / what state they're in (session-level, one value per key)
API Reference & Compatibility
Rejourney supports both a standardized Rejourney. namespace and standalone function exports (AKA calls). Both are fully supported.
| Standardized Method | Standalone Alias (AKA) |
| --- | --- |
| Rejourney.init() | initRejourney() |
| Rejourney.start() | startRejourney() |
| Rejourney.stop() | stopRejourney() |
| Rejourney.useNavigationTracking() | useNavigationTracking() |
[!TIP] We recommend using the
Rejourney.prefix for better discoverability and a cleaner import surface.
Documentation
Full integration guides and API reference: https://rejourney.co/docs/reactnative/overview
License
Licensed under Apache 2.0
