Source Available

See your webhooks.
In real-time.

Webhook proxy you can self-host — inspect payloads, replay with one click, debug in seconds. Self-hosted, single binary, no limits on volume.

terminal

$ docker compose up -d

✓ postgres, clickhouse, redis, webhooklens started

$ curl -X POST http://localhost:8080/wh/acme/stripe-hook \

-H 'Content-Type: application/json' \

-d '{"type": "payment_intent.succeeded", "amount": 2000}'

# Open http://localhost:3000 — see it live:

LIVE | forwarded POST stripe payment_intent.succeeded 23ms

LIVE | forwarded POST github push 45ms

LIVE | failed POST shopify orders/create timeout

Webhooks are invisible

You integrate Stripe, GitHub, Shopify — but when something breaks, you're debugging blind. Payloads vanish, retries are silent, errors go unnoticed until a customer complains.

🔇

Silent Failures

Webhook endpoints return 500 and you don't know until hours later. No logs, no alerts, no visibility.

🔄

Manual Replays

Something went wrong? Manually reconstruct the payload, guess the headers, hope you got it right.

💸

Vendor Lock-in

SaaS webhook tools charge per event and hold your data. Your webhook traffic flows through someone else's servers.

WebhookLens gives you full visibility

Three features that change how you work with webhooks.

Live Stream

See every webhook as it happens. Real-time WebSocket feed with status, latency, and provider info. The "magic moment."

🔍

Inspector

Headers, body (pretty-printed JSON), timing breakdown, signature validation — everything in one place. Search across all payloads.

🔁

One-Click Replay

Resend any webhook to its original target or a custom URL. Debug locally by replaying production events through your tunnel.

Up and running in 60 seconds

1

Start the server

docker compose up -d

PostgreSQL, ClickHouse, Redis, and WebhookLens — all in one command.

2

Create an endpoint

Open http://localhost:3000, sign up, and create a webhook endpoint. Copy the proxy URL.

3

Point your provider

Paste the proxy URL into Stripe, GitHub, or any webhook provider. WebhookLens intercepts, inspects, and forwards.

4

See it live

Watch webhooks appear in real-time. Click any event to inspect. Hit "Replay" to resend. Done.

Your infrastructure. Your data.

WebhookLens runs on your servers. No webhook data leaves your network. No volume limits. No vendor dependency. One Go binary, no runtime dependencies.

1
Binary
0
Volume limits
<5ms
Added latency
100%
Your data

Developer CLI

Forward production webhooks to your local dev server with one command. See events flow, replay failures, debug in real-time — all from your terminal.

Tunnel webhooks to localhost
List and inspect events
Replay to any URL
API key authentication

$ webhooklens login

Server URL [http://localhost:3000]: _

Logged in. Config saved.

$ webhooklens listen --port 4000

Forwarding webhooks to http://localhost:4000

Connected. Press Ctrl+C to stop.

[17:23:01] POST payment_intent.succeeded → 200 (12ms, evt-a1b2)

[17:23:05] POST charge.refunded → 200 (8ms, evt-c3d4)

[17:23:09] POST invoice.failed → ERR (timeout, evt-e5f6)

Everything you need

Real-time live stream

WebSocket feed of all webhook events

Payload inspector

Headers, body, timing, signature status

One-click replay

Resend to original or custom URL

Signature validation

Stripe, GitHub, custom HMAC providers

Analytics dashboard

Volume, success rate, latency percentiles

CLI + dev tunnel

Forward webhooks to localhost

Multi-tenant

JWT + API key auth, role-based access

Single binary

Go server + embedded React dashboard

Coming soon

Transformation engine — filter, map, enrich payloads
Smart routing — fan-out to multiple destinations
Alerting — Slack/email on errors and anomalies
Agent mode — intercept without URL change

Free to use. Source available.

Source-available under Elastic License 2.0. Free to self-host, no limits. Enterprise features available for teams that need SSO, transformations, and alerting.