meridian-devtools adds a floating overlay to your React app that shows the current state of all active CRDTs and the WebSocket connection. It renders nothing in production.
Installation
react ^19.0.0 and meridian-sdk as peer dependencies.
Setup
Drop<MeridianDevtools /> anywhere in your component tree, passing the same client instance used by MeridianProvider:
Props
| Prop | Type | Default | Description |
|---|---|---|---|
client | MeridianClient | required | The client instance to inspect |
defaultOpen | boolean | false | Open the panel on first render |
What the panel shows
Connection section- WebSocket state:
CONNECTED,CONNECTING,DISCONNECTED, orCLOSING - Current namespace and client ID
- Pending ops count — non-zero when disconnected with buffered writes
- Op latency — P50 and P99 round-trip time in ms, updated every second once at least one op has been sent. P99 turns red above 200ms.
| Color | Type |
|---|---|
| Blue | gcounter |
| Teal | pncounter |
| Amber | orset |
| Violet | lwwregister |
| Pink | presence |
| Green | crdtmap |
| Orange | rga |
| Sky | tree |
↻ button in the panel header forces a manual snapshot refresh — useful if the panel appears stale between auto-updates.
Production
The component and all its code are excluded from production builds. Bundlers (Vite, Next.js, webpack) eliminate the implementation viaNODE_ENV dead-code analysis — there is zero runtime overhead in deployed applications.