We Built HookRadar: An Open Source Webhook Tester for Faster Debugging
If you have ever worked with webhooks, you already know the frustrating part is not sending requests.
It is receiving them.
Everything looks fine until Stripe, Razorpay, GitHub, Slack, or some other service has to send data back to your local app. And then the usual problems start: localhost is not publicly reachable, debugging is messy, request payloads are hard to inspect, and reproducing failures takes more time than it should.
That exact pain is why we built HookRadar.
Live Demo and GitHub
- Live App: https://hookradar.up.railway.app
- GitHub: https://github.com/aniketmishra-0/Hookradar
Why we built it
We wanted a tool that could do a few things well:
- create instant webhook endpoints
- show incoming requests in real time
- help inspect payloads properly
- replay failed requests
- support forwarding to local or staging environments
- stay open source and self-hostable
A lot of existing tools are useful, but we wanted something we could run ourselves, extend, and keep simple.
What HookRadar does
HookRadar is an open-source webhook tester and debugger.
With it, you can:
- generate unique webhook URLs
- see incoming requests live
- inspect headers, query params, body, IP, and response details
- replay captured requests to another URL
- auto-forward webhooks to your own server
- customize status codes, headers, response body, and delay
- filter request history
- use a CLI for terminal-based workflows
- self-host it with Docker
The goal was straightforward: make webhook debugging less painful and more visible.
What we used to build it
We kept the stack simple:
- React 19 + Vite for the frontend
- Node.js + Express for the backend
- WebSockets for live request updates
- SQLite for persistent storage
We also added an offline webhook analysis layer that can help detect common sources and flag validation or security issues.
What makes it useful in practice
The biggest difference is feedback speed.
As soon as a webhook hits an endpoint, it shows up in the dashboard immediately. You can open the request, inspect the payload, and reproduce it without switching between a bunch of tools.
That matters a lot when you are debugging:
- payment events
- GitHub webhooks
- Slack integrations
- Shopify events
- internal automations
- staging or QA environments
We also built a CLI because sometimes opening another browser tab is unnecessary. In many cases, listening to requests from the terminal is faster.
Example workflow
Create an endpoint, send a request, and inspect it:
bash
npm install
npm run dev
curl -X POST http://localhost:3001/hook/YOUR_SLUG \
-H "Content-Type: application/json" \
-d '{"event":"payment.completed","amount":99.99}'
Top comments (0)