Specialized · Flutter Session Replay

See the crash. Not just the stack trace.

Full-screen session recording, pinned to every stack trace. Four lines of setup. Zero measurable frame-time regression on real hardware.

Crash photo boothPrivacy4 lines setup+0 mb idle<1 ms ios10 sec clipTAPROUTENETWORKCRASHIncident

Service facts

Measured on real hardware

Firebase Test Lab: Pixel 5/6/8 and iPhone 8/14 Pro/16 Pro, 10 workloads × 4 SDK configs per device.

+0 MBmemory when idle
Loaded but not recording, RSS overhead is typically zero and stays under 10 MB on every tested device.
+16 MBmedian while capturing
Active recording stays under 20 MB median; the worst measured case held below 80 MB under bursty video + exception workloads.
<1 msexception capture on iOS
Under 15 ms on Android — both fit inside a single 60 Hz frame (16.7 ms), so capture cannot drop a frame in steady state.

Free forever

Full replay. Not a trial.

10,000 replays every month on the free tier — one crash clip is one replay, up to 10 seconds, retained 30 days, no credit card. Self-host and it's the same story: MIT licensed, full feature parity.

flutter pub add traceway

Then Traceway.run with ReplayOptions.maskAll in main.dart — recording starts on the first frame.

Flutter Session ReplayService sheet

Taps & gestures
Frame-syncedEvery tap rendered onto the recording for the last 10 seconds before the crash.
Console logs
Zone hookEvery print and debugPrint from the last 10 seconds, capped at 200 lines, no manual wiring.
HTTP requests
dart:io capturedMethod, URL, status, duration, and byte counts — catches package:http, Dio, Firebase, and the platform client.
Navigation
Any NavigatorAttach Traceway.navigatorObserver once and every push, pop, and replace rides with the crash.
Breadcrumbs
Traceway.recordActionTag your own actions like cart.add_item, capped at 200 entries.

On this line

Press play on the moment it broke.

Every exception carries its replay ID automatically; open the stack trace and the last seconds of the session are right there.

Four lines to record

Traceway.run starts recording on the first frame; sensitive widgets are masked by default and anything extra wraps in TracewayMask.

The full context strip

Taps, console logs, HTTP calls, and the navigation timeline stitched to the same timeline as the symbolicated stack trace.

Share a single URL

Scrub the full session timeline with tap, route, network, and console overlays — and send the link to your team.

Disk persistence is free

Writing recordings to disk costs the same RAM as in-memory only, with no extra cost for offline-safe shipping.

The fine print

Benchmarks, not promises.

Numbers come from a single GitHub Actions run on Firebase Test Lab hardware, with methodology and raw data in the SDK repo. We claim no measurable regression on any tested workload, not improvements — and you can re-run the whole harness on your own fork.

Next stop

Ship it before your next release.

10,000 replays every month. Free. Forever. No card required.