Skip to main content
Replayfy records every screen, tap, network request, and error in your Flutter app so you can replay real sessions, understand drop-off, and fix bugs from an exact reproduction.

Install

Android — the native recording engine resolves automatically from Maven Central (mavenCentral() is already in the default Flutter Android template), so no repository configuration is needed. If you pin a pre–Maven Central version, add maven { url 'https://jitpack.io' } to your app’s android/settings.gradle as a fallback.iOS — requires a deployment target of iOS 15 or higher.

Initialize

1

Start Replayfy as early as possible

Boot the SDK inside Replay.runZoned so console output and uncaught async errors are captured too.
main.dart
2

Wire up frame capture and screen tagging

Use the provided app builder so Replayfy can capture each frame, and add the navigator observer to auto-tag screens.

Verify

Run the app, interact with it for a few seconds, then reload. Your first session appears in the dashboard within a minute.

Configuration

Every option on ReplayConfig:

API reference

All methods are static on Replay. Most return Future<void>.

Lifecycle

Identity & events

Screens, tags & properties

Runtime configuration

Privacy

Privacy & masking

Replayfy is built to keep sensitive data off the wire. Mask a widget — wrap anything sensitive; it is blurred (default), covered, or pixelated in the recording:
Mask a text input’s value from its callback — the value is dropped to "***" and never leaves the device:
Bulk & whole-screen masking:
Or mask every input from the start with maskAllInputs: true in ReplayConfig. GDPR opt-out — a persistent kill switch that survives relaunches:

Identify users

Tie sessions to real users with identify.

Track events

Send custom events and build funnels.

Privacy & masking

Redact sensitive data before it leaves the device.