{"repo":"elixir-vibe/phoenix_replay","free":true,"listed":false,"github":"https://github.com/elixir-vibe/phoenix_replay","clone":"git clone https://github.com/elixir-vibe/phoenix_replay.git","description":"Session recording and replay for Phoenix LiveView","language":"Elixir","stars":91,"topics":["assigns","debugging","elixir","liveview","phoenix","replay","session-recording"],"license":"MIT","category":"dev-tools","readme_excerpt":"PhoenixReplay Session recording and replay for Phoenix LiveView. LiveView templates are pure functions: same assigns produce the same HTML. PhoenixReplay captures assigns at each state transition and replays them by re-rendering the original view — no client-side recording, no DOM snapshots, no JavaScript changes. A 30-second session with active form input is 400 events and 8 KB on disk (compressed ETF). Quick start Add the dependency: Attach the recorder to a live session: Mount the replay dashboard: Visit /replay to browse recordings and replay sessions with a scrubber, play/pause, and speed controls. Every connected LiveView in the live session is recorded automatically — sanitized mount params, events, navigation, and assign deltas. Sessions with no user interaction are discarded. Recordings can contain business data even after sanitization. Mount the dashboard only behind an authenticated admin pipeline. You can also add a final authorization callback: How it works 1. The on mount hook attaches lifecycle hooks to each connected LiveView. 2. Session start sends a single async cast to the Store GenServer to set up a process monitor. 3. All subsequent events are written directly to ETS ( ordered set with write concurrency ) — no GenServer messages on the hot path. 4. When the LiveView process exits, the Store finalizes the recording and hands persistence to a supervised worker. Recorded events Event Data --- --- Mount View module, URL, params, session, initial assigns Handl","default_branch":null,"files":null,"tree":[],"storefront":"/r/elixir-vibe","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/elixir-vibe/phoenix_replay/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}