Skip to content

[Browser Rendering] Add session recording docs#29284

Draft
omarmosid wants to merge 2 commits intoproductionfrom
browser-rendering/session-recording-docs
Draft

[Browser Rendering] Add session recording docs#29284
omarmosid wants to merge 2 commits intoproductionfrom
browser-rendering/session-recording-docs

Conversation

@omarmosid
Copy link
Copy Markdown
Contributor

Summary

  • Adds src/content/docs/browser-rendering/features/session-recording.mdx, a new how-to page documenting the session recording feature for Browser Rendering
  • Covers enabling recording via recording: true on launch() (Puppeteer and Playwright), viewing recordings in the dashboard, retrieving recordings via the API, replaying locally with rrweb-player, platform limits, and rrweb-specific limitations

What's new

  • ## Enable session recordinglaunch() code examples for Puppeteer and Playwright, with a note that recordings are finalized on session close
  • ## View recordings — dashboard link to Browser Rendering > Logs
  • ## Retrieve a recording via APIGET /recording/:sessionId curl example and response field table
  • ## Replay a recording locally — collapsible note on rrweb-player compatibility
  • ## Limits — opt-in, launch() only, 2-hour max
  • ## rrweb limitations — canvas, cross-origin iframes, video/audio, WebGL, masked input fields, large pages

@github-actions
Copy link
Copy Markdown
Contributor

This pull request requires reviews from CODEOWNERS as it changes files that match the following patterns:

Pattern Owners
/src/content/docs/browser-rendering/ @mchenco, @cloudflare/pcx-technical-writing, @celso, @kathayl, @ToriLindsay

@omarmosid omarmosid marked this pull request as draft March 24, 2026 15:59
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 24, 2026

@github-actions
Copy link
Copy Markdown
Contributor

CI run failed: build logs


## Enable session recording

Pass `recording: true` to `puppeteer.launch()` or `playwright.launch()`:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@omarmosid will this session recordings work for CDP? if so we should include

The recording is finalized when the browser session closes — whether you call `browser.close()` explicitly, the session reaches its idle timeout, or the Worker terminates for any other reason. The recording is not available until after the session ends.
:::

## View recordings
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will need to change to Runs instead of Logs

for the dash link, check with Visal to confirm if its just

-H "Authorization: Bearer <API_TOKEN>"
```

A successful response returns the following fields:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think typically we don't have a table showing response fields. typically its an example response in a code block

| `endTime` | string | ISO timestamp when the recording ended. |
| `events` | object | rrweb events keyed by target ID. |

## Replay a recording locally
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dumb q - why might someone want to replay locally? bc they dont want to use our dash? does that mean they need to have downloaded the recording file?


## Limits

- Recording is opt-in. It is not enabled by default.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should mention it's opt-in in the intro!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants