getsentry / getsentry/sentry-javascript
Improve Session Replay integration with server rendered HTML pages (MPAs)
- Dominant language
- TypeScript
- Stars
- 8.7k
- Forks
- 1.8k
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 523
Description
We're working on onboarding for backend project to include browser support. Similar to how we have NextJS, Remix, we want to onboarding for Laravel, ASP.NET, Django, Express, Spring, etc to include a snippet to be added to their `html` template. Enabling an experience to a single framework such as NextJS:
I was talking to @mydea and a few ideas came up:
* Tracing end to end
* Release from trace baggage (to make it easier to onboard with the loader, uses same release version as backend)
* If exception happens on the backend, we want to replay to sample.
* Pass event_Id to the frontend so replay can send it. We could also define the `replay_id` on the backend so the error includes
* Could be done by setting the replay_id on the baggage given by the BE to the FE when rendering
* but for that to make sense we need the buffer to persist page loads
* Needs: remove minFlushDelay
* Keep last 30 seconds buffer for on error somehow?
* Shared worker?
* In the compression worker have an opt-in to store data in the worker in indexDB.
Also:
* https://github.com/getsentry/sentry-javascript/issues/9756
Contributor guide
Research direction
Start by reviewing the existing NextJS integration and the proposed snippet for server-rendered HTML templates. The issue names no repository files or tests; first clarify which framework integrations and replay behavior are in scope, then define tests for tracing, baggage propagation, cross-page buffering, and backend exception replay.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- django, express, javascript, laravel, nextjs, spring, typescript
- Domain
- backend, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100