Session replay, cobrowsing and product analytics you can self-host. Ideal for reproducing issues and iterating on your product.
Find a file
Alexander 345f316b27
Spots (#2305)
* feat(spot): first version to test http endpoints

* fix(helm): changed nginx path prefix

* fix(spots): added missing BUCKET_NAME env var

* fix(spots): added services init check

* feat(spots): removed geo module

* feat(spots): removed uaparser

* feat(spots): added more detailed authorization error log

* feat(spots): changed the authorization middleware

* feat(spots): extended http body size limit to 128kb

* feat(spots): added s3 error log

* feat(spots): added new handler for uploaded event

* feat(backend): small api changes in spot service

* feat(backend): rewrote request parameters grabber for getSpot handler

* feat(backend): added tenantID to auth struct

* feat(backend): added pre-signed download urls for preview, mob et video files

* feat(backend): added user's email to spots table, and getSpot responses

* feat(backend): returning spotID as a string

* feat(spot): added transcoder pipeline

* fix(spot): return spotID as a string

* feat(spot): added volume mount to spot service

* feat(spot): fixed volume mounting

* feat(spot): helm fix

* feat(spot): helm another fix

* fix(spot): correct video.webm path

* fix(spot): correct pre-signed url for download original video

* feat(spot): added PATCH and DELETE methods to CORS

* feat(spot): use string format for spotIDs in delete method

* feat(spot): added public key implemented

* fix(spot): correct public-key parser

* fix(spot): fixed query params issue + user's tenantID

* fix(spot): use 1 as a default tenant

* feat(spot): added correct total spots calculation

* fix(spot): fixed offset calculation

* feat(spot): added extra check in auth method

* fix(spot): removed / from video file name

* fix(spot): devided codec flag into 2 parts

* feat(spot): use fixed tenantID = 1 for oss users

* feat(spot): return 404 for public key not found issue

* feat(spots): added spots folder to minio path rule

* feat(spot): added spot video streaming support

* fix(spot): fixed an sql request for spot streams

* feat(spot): return playlist file in getSpot responce

* feat(spot): try to use aac audio codec

* feat(spot): added permissions support (oss/ee)

* feat(spot): added authorizer method

* feat(spot): added license check

* feat(spot): added spot preview for get response

* fix(spot): fixed a problem with permissions

* feat(spot): added crop feature

* feat(spot): upload cropped video back to s3

* feat(spot): manage expired modified playlist file

* feat(backend): hack with video formats

* feat(backend): removed space

* feat(spot): req tracing

* feat(spot): manual method's name mapping

* feat(spot): added a second method to public key auth support

* feat(spot): metrics

* feat(spot): added rate limiter per user

* feat(spot): added ping endpoint for spot jwt token check

* feat(spot): getStatus endpoint

* feat(spot): added missing import

* feat(spot): transcoding issue fix

* feat(spot): temp remove tasks

* feat(spot): better error log message

* feat(spot): set default jwt_secret value

* feat(spot): debug auth

* feat(spot): 2 diff jwt tokens support

* feat(spot): pg tasks with process status

* feat(spot): more logs

* feat(spot): improved defer for GetTask method

* feat(spot): keep only failed tasks

* feat(spot): removing temp dir with spot files

* feat(spot): added several workers for transcoding module

* feat(spot): fixed spot path for temp video files

* feat(spot): use custom statusWriter to track response code in middleware

* feat(spot): added body and parameter parser for auditrail feature

* feat(spot): fixed IsAuth method signature

* feat(spot): fixed ee service builder

* feat(spot): added import

* feat(spot): fix data type for payload and parameters jsonb fields

* feat(spot): typo fix

* feat(spot): moved out consts

* feat(spot): new table's name

* feat(spot): added missing imports in go.mod

* feat(spot): added a check for the number of comments (20 by default)
2024-08-29 16:08:33 +02:00
.github feat spot: init commit for extension (#2452) 2024-08-29 13:35:58 +02:00
api Dev (#2493) 2024-08-16 11:57:31 +02:00
assist feat(assist): updated assist/peers npm packages 2024-07-03 11:45:31 +02:00
assist-stats chore(build): Custom docker build env 2024-03-12 17:27:49 +01:00
backend Spots (#2305) 2024-08-29 16:08:33 +02:00
ee Spots (#2305) 2024-08-29 16:08:33 +02:00
frontend fix mad redirecting 2024-08-29 15:59:08 +02:00
mobs Graphql plugin update (#1835) -- v1.19.0 2024-06-25 10:13:13 +02:00
peers feat(assist): updated assist/peers npm packages 2024-07-03 11:45:31 +02:00
scripts Spots (#2305) 2024-08-29 16:08:33 +02:00
snippet Chore(release): v1.7.0 (#578) 2022-07-07 18:44:43 +02:00
sourcemap-uploader Dev (#2288) 2024-06-21 14:26:18 +02:00
sourcemapreader chore(build): Respect platform config 2024-06-04 19:36:30 +02:00
spot spot/refresh -> api/spot/refresh 2024-08-29 16:00:52 +02:00
static Updated hero 2023-05-02 11:17:28 +02:00
tracker fixes 2511: remove canvas snapshot interval if its gone for any reason 2024-08-29 09:59:03 +02:00
.gitignore chore(git): update gitignore 2023-06-12 11:48:40 +02: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 move redux plugin hashing to worker thread, update redux panel look and style 2024-04-09 14:47:31 +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 Details for directories under the MIT license 2022-08-17 20:53:51 +02:00
README.md Api v1.15.0 (#1670) 2023-11-20 16:15:12 +01: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 Remove unused code, refactor frontend and revisit libraries (#2458) 2024-08-27 16:15:14 +02: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 a 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.
  • 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.
  • Feature flags: Enable or disable a feature, make gradual releases and A/B test all without redeploying your app.
  • 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.

Roadmap

Check out our roadmap and keep an eye on what's coming next. You're free to submit new ideas and vote on features.

License

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