Webhook Tunnel · private beta
Durable webhook capture and replay
Keep one stable webhook URL, forward requests to localhost, and replay failed payloads without upgrading to an enterprise webhook router.
100 beta spots left0 / 100 claimed
Free beta for first 100 usersReplay includedNo lost Stripe payloads
Live simulation
18msWebhook request in motion
ProviderStripe
POST /in/0123456789ABCDEFGHijklmnopq202 accepted · body saved
CLIlocalhost
$ webhook listen 8080 connected: /in/0123456789ABCDEFGHijklmnopq forwarding to localhost:8080
Dashboardlive request visible
POST/webhooks/stripe200
See the webhook that failed locally
Every request is captured before forwarding, so a local 500 is no longer a lost Stripe, GitHub, or Lemon Squeezy payload.
POST/webhooks/stripe500
POST/webhooks/stripe200 replay
{
"type": "checkout.session.completed",
"customer": "cus_test",
"amount_total": 1200
}What it saves
Short feedback loops for the webhook failures that usually burn a debugging session.
Why not ngrok?
ngrok is a tunnel. This is a tunnel with durable request history, inspector, and replay built in.
Beta testFree for first 100 users
Built for developers who hit the same wall
“My local endpoint returned 500 and the provider will not resend the same payload.”
“I need ngrok for the URL, but Hookdeck feels too heavy for a weekend project.”
“I want request history and replay without moving webhook routing into enterprise tooling.”
Quickstart
- Create a free beta account.
- Issue an API key in the dashboard.
- Run
webhook listen 8080. - Send provider webhooks to your immutable
/in/<publicId>URL. - Inspect and replay captured payloads when local code fails.