Session replay, cobrowsing and product analytics you can self-host. Ideal for reproducing issues and iterating on your product.
Find a file
Andrey Babushkin 055ff8f64a
Assist remote canvas control (#3287)
* refactor(searchStore): reformat filterMap function parameters (#3166)

- Reformat the parameters of the filterMap function for better readability.
- Comment out the fetchSessions call in clearSearch method to avoid unnecessary session fetch.

* Increment frontend chart version (#3167)

Co-authored-by: GitHub Action <action@github.com>

* refactor(chalice): cleaned code
fix(chalice): fixed session-search-pg sortKey issue
fix(chalice): fixed CH-query-formatter to handle special chars
fix(chalice): fixed /ids response

* feat(auth): implement withCaptcha HOC for consistent reCAPTCHA (#3177)

* feat(auth): implement withCaptcha HOC for consistent reCAPTCHA

This commit refactors the reCAPTCHA implementation across the application
by introducing a Higher Order Component (withCaptcha) that encapsulates
captcha verification logic. The changes:

- Create a reusable withCaptcha HOC in withRecaptcha.tsx
- Refactor Login, ResetPasswordRequest, and CreatePassword components
- Extract SSOLogin into a separate component
- Improve error handling and user feedback
- Standardize loading and verification states across forms
- Make captcha implementation more maintainable and consistent

* feat(auth): support msaas edition for enterprise features

Add msaas to the isEnterprise check alongside ee edition to properly
display enterprise features. Use userStore.isEnterprise in SSOLogin
component instead of directly checking authDetails.edition for
consistent
enterprise status detection.

* Increment frontend chart version (#3179)

Co-authored-by: GitHub Action <action@github.com>

* feat(assist): improved caching mechanism for cluster mode (#3180)

* Increment assist chart version (#3181)

Co-authored-by: GitHub Action <action@github.com>

* ui: fix table column export

* Increment frontend chart version

* fix(auth): remove unnecessary captcha token validation (#3188)

The token validation checks were redundant as the validation is already
handled by the captcha wrapper component. This change simplifies the
password reset flow while maintaining security.

* Increment frontend chart version (#3189)

Co-authored-by: GitHub Action <action@github.com>

* ui: onboarding fixes

* ui: fixes for onboarding ui

* Increment frontend chart version

* feat(helm): add TOKEN_SECRET environment variable

Add TOKEN_SECRET environment variable to HTTP service deployment and
generate a random value for it in vars.yaml.

Signed-off-by: rjshrjndrn <rjshrjndrn@gmail.com>

* fix(GraphQL): remove unused useTranslation hook (#3200) (#3206)

Co-authored-by: PiRDub <pirddeveloppeur@gmail.com>

* Increment frontend chart version

* chore(http): remove default token_string

scripts/helmcharts/openreplay/charts/http/scripts/entrypoint.sh

Signed-off-by: rjshrjndrn <rjshrjndrn@gmail.com>

* fix(dashboard): update filter condition in MetricsList

Change the filter type comparison from checking against 'all' to
checking against an empty string. This ensures proper filtering
behavior when filtering metrics in the dashboard component.

* Increment frontend chart version

* ui: shrink icons when no space, adjust player area for events export … (#3217)

* ui: shrink icons when no space, adjust player area for events export panel, fix panel size

* ui: rm log

* Increment frontend chart version

* refactor(chalice): changed user-journey

* Increment chalice chart version

* refactor(auth): separate SSO support from enterprise edition

Add dedicated isSSOSupported property to correctly identify when SSO
authentication is available, properly handling the 'msaas' edition
case separately from enterprise edition checks. This fixes SSO
visibility in the login interface.

* Increment frontend chart version

* UI patches (28.03) (#3231)

* ui: force getting url for location in tabmanagers

* Assist add turn servers (#3229)

* fixed conflicts

* add offers

* add config to sicket query

* add config to sicket query

* add config init

* removed console logs

* removed wrong updates

* fixed conflicts

* add offers

* add config to sicket query

* add config to sicket query

* add config init

* removed console logs

* removed wrong updates

* ui: fix chat draggable, fix default params

---------

Co-authored-by: nick-delirium <nikita@openreplay.com>

* ui: fix spritemap generation for assist sessions

* ui: fix yarnlock

* fix errors

* updated widget link

* resolved conflicts

* updated widget url

---------

Co-authored-by: Andrey Babushkin <55714097+reyand43@users.noreply.github.com>
Co-authored-by: Андрей Бабушкин <andreybabushkin2000@gmail.com>

* fix(init): remove duplicate clone

Signed-off-by: rjshrjndrn <rjshrjndrn@gmail.com>

* Increment assist chart version

* Increment frontend chart version

* ui: add old devtool filters

* ui: filter keys

* Increment frontend chart version

* ui: fix modules mapper

* ui: fix modules label

* Increment frontend chart version

* ui: fix double fetches for sessions

* Increment frontend chart version

* pulled updates (#3254)

* Increment frontend chart version (#3255)

Co-authored-by: GitHub Action <action@github.com>

* Increment assist chart version (#3256)

Co-authored-by: GitHub Action <action@github.com>

* feat(chalice): added for_spot=True for authenticate_sso (#3259)

* Increment chalice chart version (#3260)

Co-authored-by: GitHub Action <action@github.com>

* Assist patch canvas (#3265)

* add agent info to assist and tracker

* removed AGENTS_CONNECTED event

* Increment frontend chart version (#3266)

Co-authored-by: GitHub Action <action@github.com>

* Increment assist chart version (#3267)

Co-authored-by: GitHub Action <action@github.com>

* resolved conflict

* removed comments

* add global method support

* fix errors

* remove wrong updates

* remove wrong updates

* add onDrag as option

---------

Signed-off-by: rjshrjndrn <rjshrjndrn@gmail.com>
Co-authored-by: Shekar Siri <sshekarsiri@gmail.com>
Co-authored-by: Mehdi Osman <estradino@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Taha Yassine Kraiem <tahayk2@gmail.com>
Co-authored-by: Alexander <zavorotynskiy@pm.me>
Co-authored-by: nick-delirium <nikita@openreplay.com>
Co-authored-by: rjshrjndrn <rjshrjndrn@gmail.com>
Co-authored-by: PiRDub <pirddeveloppeur@gmail.com>
2025-04-14 11:25:17 +02:00
.github chore(action): cloning specific tag 2025-04-10 15:41:56 +02:00
api fix(chalice): fixed redundant event-names 2025-03-28 17:19:36 +01:00
assist Assist fix canvas stream (#3261) 2025-04-03 16:14:46 +02:00
assist-server feat(assist-server): moved the build.sh script to the root 2025-04-04 15:44:19 +02:00
assist-stats chore(build): Custom docker build env 2024-03-12 17:27:49 +01:00
backend feat(analytics): added mock (because it's impossible to build at the moment) 2025-04-03 15:33:48 +02:00
ee feat(assist-server): fixed an issue with sessionIDs collector 2025-04-04 17:53:19 +02:00
frontend Assist remote canvas control (#3287) 2025-04-14 11:25:17 +02:00
mobs feat(proto): removed a part of deprecated messages (min supported tracker version is 6.0.0) 2025-03-06 13:49:18 +01:00
networkProxy Assist remote canvas control (#3287) 2025-04-14 11:25:17 +02:00
scripts Assist remote canvas control (#3287) 2025-04-14 11:25:17 +02:00
snippet Chore(release): v1.7.0 (#578) 2022-07-07 18:44:43 +02:00
sourcemap-uploader sourcemapuploader: fix globe version 2024-11-20 09:54:35 +01:00
sourcemapreader feat(node.js): upgraded express module and node-alpine for sourcemap-reader and peers 2025-02-04 11:41:38 +01:00
spot spot: skip saas check for ingest 2025-03-25 16:52:48 +01:00
static Updated hero 2023-05-02 11:17:28 +02:00
tracker Assist remote canvas control (#3287) 2025-04-14 11:25:17 +02:00
.gitignore tracker: release 16.1.0 2025-03-25 15:17:43 +01:00
.pre-commit-config.yaml Api v1.13.0 (#1310) 2023-06-07 13:19:14 +02:00
CLA.md Update CLA 2021-12-03 12:34:00 +01:00
CODE_OF_CONDUCT.md Add README 2021-04-30 21:10:39 +02:00
codecov.yml update codecov yml 2025-04-04 10:46:13 +02:00
CONTRIBUTING.md Introducing CLA 2021-10-28 19:34:11 +02:00
lefthook.yml Tn tracker android (#2289) 2024-06-21 14:57:49 +02:00
LICENSE Update date 2025-02-27 19:42:44 -05:00
README.md Added spot 2024-09-11 09:56:21 -04:00
README_AR.md Update README_AR.md 2023-11-03 19:24:35 -04:00
README_ESP.md Update README_ESP.md 2023-11-03 19:27:30 -04:00
README_FR.md Update README_FR.md 2023-11-03 19:27:16 -04:00
README_RU.md Update README_RU.md 2023-11-03 19:26:30 -04:00
SECURITY.md Add README 2021-04-30 21:10:39 +02:00
third-party.md refactor(chalice): upgraded dependencies 2025-03-20 17:13:17 +01:00
yarn.lock feat ui: dashboards redesign (#2230) 2024-06-27 19:47:34 +02:00

Français  |  Español  |  Русский  |  العربية

Session replay for developers

The most advanced session replay for building delightful web apps.

OpenReplay is an open-source session replay suite you can host yourself, that lets you see what users do on your web app, helping you troubleshoot issues faster.

  • Session replay. OpenReplay replays what users do, but not only. It also shows you what went under the hood, how your website or app behaves by capturing network activity, console logs, JS errors, store actions/state, page speed metrics, cpu/memory usage and much more.
  • Low footprint. With a ~26KB (.br) tracker that asynchronously sends minimal data for a very limited impact on performance.
  • Self-hosted. No more security compliance checks, 3rd-parties processing user data. Everything OpenReplay captures stays in your cloud for a complete control over your data.
  • Privacy controls. Fine-grained security features for sanitizing user data.
  • Easy deploy. With support of major public cloud providers (AWS, GCP, Azure, DigitalOcean).

Features

  • Session replay: Lets you relive your users' experience, see where they struggle and how it affects their behavior. Each session replay is automatically analyzed based on heuristics, for easy triage.
  • Spot: A Chrome extension that lets record bugs directly from your browser — each recording includes all the technical details developers need to fix them.
  • DevTools: It's like debugging in your own browser. OpenReplay provides you with the full context (network activity, JS errors, store actions/state and 40+ metrics) so you can instantly reproduce bugs and understand performance issues.
  • Assist: Helps you support your users by seeing their live screen and instantly hopping on call (WebRTC) with them without requiring any 3rd-party screen sharing software.
  • Omni-search: Search and filter by almost any user action/criteria, session attribute or technical event, so you can answer any question. No instrumentation required.
  • Analytics: For surfacing the most impactful issues causing conversion and revenue loss.
  • Fine-grained privacy controls: Choose what to capture, what to obscure or what to ignore so user data doesn't even reach your servers.
  • Plugins oriented: Get to the root cause even faster by tracking application state (Redux, VueX, MobX, NgRx, Pinia and Zustand) and logging GraphQL queries (Apollo, Relay) and Fetch/Axios requests.
  • Integrations: Sync your backend logs with your session replays and see what happened front-to-back. OpenReplay supports Sentry, Datadog, CloudWatch, Stackdriver, Elastic and more.

Deployment Options

OpenReplay can be deployed anywhere. Follow our step-by-step guides for deploying it on major public clouds:

OpenReplay Cloud

For those who want to simply use OpenReplay as a service, sign up for a free account on our cloud offering.

Community Support

Please refer to the official OpenReplay documentation. That should help you troubleshoot common issues. For additional help, you can reach out to us on one of these channels:

  • Slack (Connect with our engineers and community)
  • GitHub (Bug and issue reports)
  • Twitter (Product updates, Great content)
  • YouTube (How-to tutorials, past Community Calls)
  • Website chat (Talk to us)

Contributing

We're always on the lookout for contributions to OpenReplay, and we're glad you're considering it! Not sure where to start? Look for open issues, preferably those marked as good first issues.

See our Contributing Guide for more details.

Also, feel free to join our Slack to ask questions, discuss ideas or connect with our contributors.

License

This monorepo uses several licenses. See LICENSE for more details.