Does LogRocket session replay work on Flutter web?
Not in a usable way. LogRocket reconstructs sessions from the DOM, and a Flutter web app has no DOM, so the visual replay has nothing to rebuild even when console and network logging still flows.
LogRocket reconstructs sessions from the DOM plus network and redux state. That reconstruction is what lets you scrub through a session and inspect state at each step.
The reason is how Flutter web renders. It does not draw your interface to the DOM. With the CanvasKit renderer (a WebAssembly build of Google’s Skia graphics engine, and the production default for most Flutter web apps) and the newer Skwasm renderer, Flutter paints the entire UI as pixels onto one HTML canvas element. To the browser, and to any tool that reads the DOM, your app is a single opaque rectangle. No buttons, no text nodes, nothing to attach to.
On a Flutter web app the DOM reconstruction has nothing to work with. The visual replay comes back blank (or, where a canvas-video fallback exists, a very low frame-rate clip), even while console and network logging keep flowing.
There is also a privacy catch worth flagging. DOM-based tools mask sensitive fields by selecting the elements to redact (a CSS class, a selector, an attribute). On a Flutter canvas there are no such elements, so even when one of these tools does manage a low-framerate video capture of the canvas, none of them can mask anything inside it. Every tool in this space documents that canvas content cannot be masked. Anything Flutter painted (passwords, payment details, personal data) is recorded in the clear, which is a real concern for GDPR, HIPAA, PCI, and similar obligations.
What you can and cannot get
Depending on setup, you may still capture some network and error telemetry. But the headline LogRocket feature, watching a faithful visual replay of the user’s session, does not survive the canvas on Flutter web.
A Flutter-native alternative
Pixeltrace records the rendered frames of your Flutter web app so visual replay works on canvas. It is built for Flutter’s rendering model rather than adapted from a DOM recorder, and kept light enough to record without a visible performance hit.
Being built for Flutter also means masking works where it can't on a DOM recorder: you mark sensitive widgets and Pixeltrace redacts those regions at capture time, on-device, so personal data never enters the recording. That's masking on canvas, which LogRocket can't do.
Pixeltrace isn't available yet. Join the waitlist for a launch notification.