OpenReplay is a self-hosted session replay and analytics tool designed to help developers troubleshoot issues, co-browse with users, and optimize their web and mobile applications. It captures user interactions, network activity, console logs, JS errors, and various performance metrics to provide a comprehensive view of user sessions. The project is managed by the organization openreplay and has seen significant activity since its creation on April 29, 2021. The repository has 8,913 stars, 477 forks, and 121 open issues. The main programming language used is TypeScript.
Mehdi Osman (estradino): Frequently increments chart versions; collaborates with GitHub Actions.
Kraiem Taha Yassine (tahayk): Focuses on fixing issues related to chalice and platform filters.
Shekar Siri (shekarsiri): Works on UI changes and enhancements.
Alexander (zavorotynskiy): Contributes to backend improvements and feature additions.
Delirium (nick-delirium): Heavily involved in UI fixes and enhancements across multiple files.
Rajesh Rajendran (rjshrjndrn): Handles helm chart configurations and CI/CD improvements.
The team shows a collaborative effort in maintaining and improving the project with a clear division of responsibilities. The frequent commits indicate an active development cycle focused on both backend stability and frontend user experience enhancements.
OpenReplay is actively maintained with regular updates and feature enhancements. However, there are several critical issues related to deployment configurations and build failures that need immediate attention. The team demonstrates strong collaboration and a clear division of responsibilities, ensuring continuous improvement in both backend stability and frontend user experience.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Delirium | 8 | 2/1/0 | 12 | 139 | 7233 | |
Shekar Siri | 4 | 1/1/0 | 12 | 13 | 1784 | |
dependabot[bot] | 5 | 7/0/3 | 5 | 24 | 889 | |
Alexander | 3 | 2/2/0 | 5 | 9 | 88 | |
Rajesh Rajendran | 2 | 0/0/0 | 2 | 25 | 76 | |
Kraiem Taha Yassine | 2 | 4/4/0 | 6 | 8 | 50 | |
Mehdi Osman | 2 | 11/5/2 | 7 | 4 | 25 | |
GitHub Action | 6 | 0/0/0 | 6 | 4 | 18 | |
Snyk bot | 1 | 0/0/0 | 1 | 1 | 2 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
OpenReplay is a self-hosted session replay and analytics tool designed to help developers troubleshoot issues, co-browse with users, and optimize their web and mobile applications. It captures user interactions, network activity, console logs, JS errors, and various performance metrics to provide a comprehensive view of user sessions. OpenReplay supports web applications, iOS, and React Native apps, with plans to support Android and Flutter soon. The project is managed by the organization openreplay and has seen significant activity since its creation on April 29, 2021. The repository has 8,913 stars, 477 forks, and 121 open issues. The main programming language used is TypeScript.
Commit: Increment chalice chart version (#2193)
scripts/helmcharts/openreplay/charts/chalice/Chart.yaml
Commit: fix(chalice): fixed funnels (#2192)
api/chalicelib/core/significance.py
, ee/api/schemas/schemas_ee.py
Commit: Increment frontend chart version (#2189)
scripts/helmcharts/openreplay/charts/frontend/Chart.yaml
Commit: Change UI minor (#2188)
frontend/app/components/UsabilityTesting/TestOverview.tsx
, frontend/app/styles/global.scss
Commit: feat(assest): use original content-encoding for uploaded to s3/azure assets (#2178)
backend/internal/assets/cacher/cacher.go
, backend/internal/storage/storage.go
, backend/internal/videostorage/service.go
, backend/pkg/objectstorage/objectstorage.go
, backend/pkg/objectstorage/s3/s3.go
, ee/backend/pkg/objectstorage/azure/azure.go
Commit: feat(peers): disabled peers debug level (#2176)
peers/server.js
Commit: Increment frontend chart version (#2172)
scripts/helmcharts/openreplay/charts/frontend/Chart.yaml
Commit: fix ui: fix EFS indexes check for reader (#2171)
frontend/app/player/web/MessageLoader.ts
, frontend/app/player/web/messages/MFileReader.ts
Commit: chore(helm): Remove hardcoded ingress host
plaintext
scripts/helmcharts/openreplay/charts/alerts/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/alerts/values.yaml,
scripts/helmcharts/openreplay/charts/assets/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/assets/values.yaml,
scripts/helmcharts/openreplay/charts/canvas-handler/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/canvas-handler/values.yaml,
scripts/helmcharts/openreplay/charts/canvas-maker/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/canvas-maker/values.yaml,
scripts/helmcharts/openreplay/charts/db/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/db/values.yaml,
scripts/helmcharts/openreplay/charts/ender/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/ender/values.yaml,
scripts/helmcharts/openreplay/charts/heuristics/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/heuristics/values.yaml,
scripts/helmcharts/openreplay/charts/imagestorage/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/imagestorage/values.yaml,
scripts/helmcharts/openreplay/charts/integrations/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/integrations/values.yaml,
scripts/helmcharts/openreplay/charts/sink/templates/ingress.yaml,
scripts/helmcharts/openreplay/charts/sink/values.yaml,
scripts/helmcharts/openreplay/charts/storage/templates/
ingress.yaml,scripts/
helm charts/
open replay/
charts/
storage/
values.
yaml,scripts/
helm charts/
open replay/
charts/
video storage/
templates/
ingress.
yaml,scripts/
helm charts/
open replay/
charts/
video storage/
values.
yamlFrom the recent activities:
The team shows a collaborative effort in maintaining and improving the project with a clear division of responsibilities. The frequent commits indicate an active development cycle focused on both backend stability and frontend user experience enhancements.
The repository openreplay/openreplay
currently has 121 open issues. This analysis will highlight notable problems, uncertainties, disputes, TODOs, and anomalies among the open issues. Closed issues are mentioned for context but are not the primary focus.
fastapi
, urllib3
, and pydantic
./api
, /ee/api
, /ee/connectors/deploy
, /ee/intelligent_search
, /ee/recommendation
).coderabbitai[bot]
.#2187: Allow using existing secret in charts
#2185: [Snyk] Security upgrade python from 3.11-alpine to 3.13.0b1-alpine
#2180: Optional Chaining Breaks Build of NextJS React App Using Latest Tracker v12.0.12
#2108: Internal @openreplay/tracker bug: Uncaught (in promise) TypeError: .for is not iterable
#2186: feat ui/tracker: add compression to assist plugin
coderabbitai[bot]
.#2179: Updated patch build from main 2401449a4ae38ddf1094068de67e84ea45be3834
#2147: Deploy to K8S ... can't init postgres connection: pgxpool.Connect error
#2146: build(deps): bump pydantic[email] from 2.3.0 to 2.7.1
pydantic[email]
.coderabbitai[bot]
.coderabbitai[bot]
.The project is actively maintained with regular dependency updates and feature enhancements. However, there are several critical issues related to deployment configurations and build failures that need immediate attention. The community engagement is strong with contributors willing to provide fixes and enhancements. The use of automated tools like coderabbitai[bot]
helps streamline reviews but may miss nuanced issues requiring human oversight.
fastapi
, urllib3
, pydantic
, gunicorn
, and others.boto3
from version 1.34.84
to 1.34.103
.The project has several open pull requests primarily focused on dependency updates and feature enhancements. However, there are notable issues such as pending CLA statuses and skipped reviews that need attention. Recently closed pull requests indicate active maintenance and bug fixing, which is crucial for project stability. Special attention should be given to open pull requests involving significant changes or multiple dependency updates to ensure they do not introduce new issues.
This pull request involves updating various dependencies across multiple directories within the openreplay/openreplay
repository. Specifically, it updates several Python packages in the /api
, /ee/api
, /ee/connectors/deploy
, /ee/intelligent_search
, and /ee/recommendation
directories. The updates include changes to fastapi
, urllib3
, pydantic
, gunicorn
, python-multipart
, idna
, pycryptodomex
, mlflow
, and apache-airflow
.
API Directory
0.104.1
to 0.109.1
1.26.16
to 1.26.18
2.3.0
to 2.4.0
EE API Directory
0.104.1
to 0.109.1
1.26.16
to 1.26.18
2.3.0
to 2.4.0
21.2.0
to 22.0.0
0.0.6
to 0.0.7
EE Connectors Deploy Directory
1.26.12
, etc.) to 1.26.18
3.4
to 3.7
3.18.0
to 3.19.1
EE Intelligent Search Directory
0.103.1
to 0.109.1
2.3.0
to 2.4.0
EE Recommendation Directory
0.95.2
, etc.) to 0.109.1
1.26.x
) to 1.26.x
1.x
) to latest0.x
) to latest2.x
) to latest2.x
) to latestThe dependency updates in PR #2194 are essential for keeping the project up-to-date with the latest versions of its dependencies, which can include important security patches and performance improvements.
This pull request introduces a new feature related to message compression in the assist plugin within the OpenReplay tracker system.
The introduction of message compression in PR #2186 is a valuable enhancement that can improve performance by reducing message sizes during transmission, but it requires thorough testing and monitoring.
Overall, both PRs #2194 and #2186 bring important updates and enhancements to the OpenReplay project, focusing on dependency management and performance improvements through message compression, respectively.
api/chalicelib/core/significance.py
URL: significance.py
Imports and Dependencies:
chalicelib
, schemas
) and external libraries (psycopg2
, math
, warnings
).Constants and Configuration:
SIGNIFICANCE_THRSH
and T_VALUES
are defined at the top, making them easily configurable.Functions:
get_stages_and_events
is quite complex and could benefit from breaking down into smaller helper functions.Error Handling:
Logging:
Performance Considerations:
Code Style:
ee/api/schemas/schemas_ee.py
URL: schemas_ee.py
Imports and Dependencies:
Class Definitions:
Field
for attribute definitions ensures proper validation and default values.Enums:
Validators:
@model_validator
, ensuring data integrity.Code Style:
backend/internal/assets/cacher/cacher.go
URL: cacher.go
Imports and Dependencies:
Struct Definitions:
cacher
are well-defined with clear fields representing the state of the cacher.Concurrency Handling:
timeoutMap
, workers
) to manage tasks.Error Handling:
Performance Considerations:
MAX_CACHE_DEPTH
) and timeouts.Code Style:
frontend/app/components/UsabilityTesting/TestOverview.tsx
URL: TestOverview.tsx
Imports and Dependencies:
Component Definition:
useEffect
, useState
) to manage state.UI Elements:
Button
, Typography
, Select
) for consistent UI design.State Management:
useStore
), ensuring a reactive UI.Code Style:
frontend/app/styles/global.scss
URL: global.scss
Styles Definition:
form-field
, .capitalize-first
).Use of SCSS Features:
@apply
, .lucide
) for cleaner style definitions.backend/internal/storage/storage.go
URL: storage.go
Imports and Dependencies:
Struct Definitions:
Storage
are well-defined with clear fields representing the state of the storage system.Concurrency Handling:
compressionTasks
, uploadingTasks
) to manage tasks.Error Handling:
Performance Considerations:
gzip
, brotli
, zstd
) and task management.Code Style:
backend/pkg/objectstorage/s3/s3.go
URL: s3.go
Imports and Dependencies:
Struct Definitions:
storageImpl
are well-defined with clear fields representing the state of the S3 storage implementation.Concurrency Handling:
Error Handling:
frontend/app/player/web/MessageLoader.ts
URL: MessageLoader.ts
Imports and Dependencies:
Class Definition:
loadFiles
, processMessages
).State Management:
store.update
).The source code files provided exhibit good structure and quality overall, adhering to best practices in their respective languages (Python, Go, TypeScript). However, there is room for improvement in terms of documentation (docstrings/comments) across all files to enhance readability and maintainability. Additionally, breaking down complex functions/methods into smaller units can further improve code clarity.