ReplayDB
Time-travel debugger · Open source

Debug offline-first apps
by going back in time.

Offline-first apps are distributed systems. When sync breaks, traditional debuggers are useless. ReplayDB records every IndexedDB operation so you can step backward and forward through your app's exact history.

ReplayDB
Timeline State Diff
DB_WRITE todos → put "todo-1" 0ms
DB_WRITE todos → put "todo-2" 12ms
NETWORK went offline 1.4s
SYNC_START queue flush — 2 pending 4.2s
DB_WRITE todos → put "todo-1" ⚠ duplicate 4.3s
State at this event todos: 2 records · network: offline

Every event. Every state. Every diff.

Event timeline

Every DB write, delete, network state change, and sync event recorded in order. Click any event to inspect it.

Time-travel state

Full reconstructed database state at any point in time. Step backward and forward event by event.

Diff view

Before/after comparison between any two events. See exactly what was added, changed, or removed.

Session export

Export your full session as a .json file. Attach it to bug reports so others can reproduce the exact issue.

Zero code changes

Patches indexedDB.open transparently. Your existing database code needs no modifications whatsoever.

Custom events

Annotate the timeline with your own events — mark sync start/end, user actions, or anything you want to correlate with DB changes.

Drop it in.
No config required.

Install the two packages, call initReplayDB() once, and render the panel in dev mode. That's it — the panel appears at the bottom of your app.

Works with any IndexedDB app React + framework agnostic Dev-only, zero prod overhead
terminal

$ npm install @replaydb/sdk @replaydb/devtools

$ cat main.tsx

import { initReplayDB } from '@replaydb/sdk';

import { Panel } from '@replaydb/devtools';

await initReplayDB();

{ import.meta.env.DEV && <Panel /> }

Stop guessing. Start replaying.

Free, open source, and takes 2 minutes to add to any project.