Skip to content

rejourneyco/rejourney

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

363 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rejourney Logo Rejourney

Rejourney Session Replay

Lightweight session replay and observability for Mobile and Web Apps
Focus with pixel-perfect video capture and real-time incident detection.

Explore the Website »

React Native Expo Swift

Browser SDK Next.js Vue.js Nuxt

Features

Pixel Perfect Capture

True FPS video playback capturing every rendered pixel. Unlike competitors, we capture everything—including Mapbox (Metal), custom shaders, and GPU-accelerated views.

Live Incident Stream

Issues Feed

See crashes, errors, and rage taps as they happen in real-time with instant crash reporting.

Error/ANR/Crash Detection

ANR Issues

Automatic detection of Application Not Responding events with full thread dumps and main thread analysis.

Journey Mapping

User Journeys

Visualize how users navigate your app. Identify high-friction drop-off points and optimize conversion funnels.

Interaction Heat Maps

Heatmaps

Visualize user engagement with precision. See where they tap, swipe, and scroll to optimize UI placement.

Global Stability

Geo Intelligence

Monitor performance and stability across different regions. Spot infrastructure issues before they affect your global audience.

Growth Engines

Growth Engines Track user retention and loyalty segments. Understand how releases impact your power users versus bounce rates.

Team Alerts

Team Alerts Smart email notifications for crashes, ANRs, and error spikes. Role-based access for engineering teams.

Documentation

Full integration guides and API reference: https://rejourney.co/docs/reactnative/overview

Self-Hosting

Operations (K8s / Tailscale / admin hostnames)

Contributing

Want to contribute to Rejourney? See our Contributing Guide: https://rejourney.co/docs/community/contributing

Local Development

Local development mirrors production through local-k8s/. For a fresh checkout, copy local-k8s/env.example to .env.k8s.local, fill the required local secrets, then run npm run ci:local to install, validate, build, deploy, migrate, and start the local stack. After that first bootstrap, use npm run dev for the hot-reload daily workflow.

docker-compose.selfhosted.yml is the official single-node self-hosted deployment path.

Benchmarks

Rejourney is designed to stay out of the way: small package footprint, low browser intensity, and mobile capture work that keeps the main thread clear. The landing-page benchmark gallery is directly linkable at rejourney.co/#benchmark-gallery.

Web vs PostHog

Live Chromium benchmark across the three web fixtures: Next.js, SvelteKit, and Nuxt. Each SDK ran against a live project endpoint for 3 iterations per framework. Lower is better for every metric below.

Evidence: benchmark report, raw results, Rejourney live network captures, PostHog network captures.

Section Winner Margin
Bundlephobia gzipped package size Rejourney 3.9x smaller than posthog-js
Median live SDK upload body Rejourney 3.0x smaller than PostHog
Browser task duration Rejourney 1.1x lower median task time
Script execution time Rejourney 2.0x lower median script time
Final JS heap Rejourney 1.4x lower median heap

Package Size

Bundlephobia fixed-version package size. Gzip is the transfer-size segment; minified is the full bar represented in the gallery.

Package Version Minified Gzipped Source
@rejourneyco/browser 0.1.0 52.3 kB 15.9 kB Bundlephobia
posthog-js 1.374.2 187.5 kB 61.5 kB Bundlephobia

Live Web Benchmark Metrics

App Rejourney upload PostHog upload Rejourney task PostHog task Rejourney script PostHog script Rejourney heap PostHog heap
Next.js 21.29 KiB 45.35 KiB 417.96 ms 449.91 ms 160.46 ms 185.06 ms 15.81 MiB 16.19 MiB
SvelteKit 8.38 KiB 24.99 KiB 268.72 ms 304.03 ms 19.35 ms 42.02 ms 6.63 MiB 9.17 MiB
Nuxt 8.40 KiB 26.57 KiB 305.51 ms 322.24 ms 21.12 ms 41.17 ms 11.33 MiB 15.44 MiB

Mobile vs Sentry

Rejourney Mobile uses an async capture pipeline with run loop gating, so capture work can happen off the app's critical rendering path and automatically pause during high-interaction periods.

React Native Package Size

Package Version Minified Gzipped Winner
@rejourneyco/react-native 1.0.17 39.7 kB 13.2 kB 10.2x smaller minified JS bundle
@sentry/react-native 8.7.0 403 kB 135.3 kB -

Sources: @rejourneyco/react-native on Bundlephobia, @sentry/react-native on Bundlephobia.

Mobile Performance

Device: iPhone 15 Pro (iOS 26)
Environment: Expo SDK 54, React Native New Architecture
Test App: Merch App production build with Mapbox Metal and Firebase
Test Workload: 46 complex feed items, Mapbox GL View, 124 API calls, 31 subcomponents, active gesture tracking, and real-time privacy redaction.

Metric Avg (ms) Max (ms) Min (ms) Thread
Main: UIKit + Metal Capture 12.4 28.2 8.1 Main
BG: Async Image Processing 42.5 88.0 32.4 Background
BG: Tar+Gzip Compression 14.2 32.5 9.6 Background
BG: Upload Handshake 0.8 2.4 0.3 Background
Total Main Thread Impact 12.4 28.2 8.1 Main

Total Main Thread Impact is the only work in this table that blocks app rendering.

Engineering

Engineering decisions and architecture: https://rejourney.co/engineering

License

Client-side components (SDKs, CLIs) are licensed under Apache 2.0. Server-side components (backend, dashboard) are licensed under SSPL 1.0. See LICENSE-APACHE and LICENSE-SSPL for details.


Translations

About

Rejourney is a open source, self-hostable/hosted observability tool for web and mobile apps. Focus on lightweight and performance.

Topics

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-APACHE
Unknown
LICENSE-SSPL

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors