replay
Webhook capture & replay CLI
- Stack
- Go
- or Node + TS
- Metric
- open-source · single-binary CLI
- Links
- repo — soondemo — soon
Problem
Developing against webhooks is miserable: you can’t easily reproduce the exact
payload that broke, and tunnelling every event to localhost is slow and flaky.
replay is the small, sharp CLI that fixes the loop — capture once, replay
forever.
Approach
Record incoming webhooks to a local, human-readable capture file. Replay any captured event (or a whole session) against your local server, with headers and signatures preserved so signature verification still passes.
# capture live webhooks to a file, then replay the one that broke
replay record --out session.jsonl --forward localhost:3000
replay play session.jsonl --only 'evt_1a2b' --to localhost:3000
What I built
A single self-contained binary (Go), zero-config for the common case, with a capture format that’s just newline-delimited JSON — greppable, diffable, check-into-the-repo-able.
Hard parts
- Deterministic replay — same bytes, same headers, same signature, every time.
- Recording format — readable and stable enough to commit as a fixture.
- Zero-config DX — it should be useful in the first thirty seconds.
Outcome
The webhook edit-run-debug loop drops from minutes to seconds, and the payload that caused a bug becomes a committed regression fixture instead of a lost screenshot.
Links
Open-source — repo link is a placeholder until release.