Skip to content

Planning: playwright-rs-trace-viewer-wasm crate (browser-hosted trace UI) #82

Description

@padamson

Planning issue for a browser-hosted Playwright trace viewer built in Rust + WASM, consuming the `playwright-rs-trace` parser (#80). Targets v0.14.0-era work; not scheduled.

What this is

A Rust crate that compiles to WASM, ships as a bundled HTML/JS/WASM artifact, and lets a user drag-drop a Playwright trace zip into a browser tab and explore it — same UX as `npx playwright show-trace`, but:

Why this is a strategic move

Without `@playwright/trace-viewer` running, the only existing way to inspect a Playwright trace is to install Node and run the JS viewer. That's a distribution friction. Shipping a static-asset bundle (a single `index.html` + `.wasm` blob) means:

The strategic moat is that `playwright-rs-trace` (#80) is the only programmatic trace parser anywhere; the WASM viewer is the canonical UI for it.

Where it lives

Workspace member: `crates/playwright-rs-trace-viewer-wasm/`. Independent versioning. Distributes as:

Surface to scope

  • Drag-drop zip ingestion (no server side)
  • Action timeline scrub
  • Per-action detail panel: selector, params, before/after snapshot, network entries, log
  • Filter / search by action kind or selector substring
  • Per-action screenshot if the trace has one
  • Stretch: side-by-side DOM-snapshot diff viewer

Coupling

Out of scope

  • Live trace streaming (would require a server component; not what this is)
  • Trace recording (the main `playwright-rs` crate already does that)
  • Trace editing (read-only viewer)

Next step

Land #80 first. Once the parser is stable, scope this with: UI framework choice, deployment artifact spec (single static bundle with no external CDN), and a list of trace features the viewer must surface (vs. defer).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions