Introduction
Hookman is a webhook routing proxy for developers. It gives you a single stable URL that you configure in Stripe, Paddle, GitHub, or any other webhook provider — once — and never change again. Instead of updating the endpoint every time you switch branches, you tell Hookman where each branch lives and flip a switch.
The problem Hookman solves
Most webhook providers expect a single destination URL. That works fine in production, but during development you’re constantly switching between branch deployments:
main→https://myapp.com/api/webhooksfeature/checkout→https://pr-42.preview.myapp.com/api/webhooksfeature/billing→https://pr-51.preview.myapp.com/api/webhooks
Every branch switch means opening the Stripe dashboard (or running the Stripe CLI), finding your webhook endpoint, updating the URL, saving it, switching back to your code. Multiply that by every developer on your team and every webhook provider you use.
Hookman eliminates that loop entirely.
How it works
- You get a Hookman endpoint — something like
https://hookman.dev/w/acme/payments - You set that as your webhook URL in Stripe (once, never again)
- You register your deployments with Hookman — branch name → URL
- You switch the active branch in the Hookman dashboard or CLI
Hookman proxies every incoming webhook to whichever deployment is currently active, in under 5ms of added latency. The original request — headers, body, everything — is forwarded unchanged.
When you need Hookman
Hookman is useful if you:
- Use preview deployments (Vercel, Netlify, Cloudflare Pages, Render, Railway)
- Test webhooks from Stripe, Paddle, GitHub, Shopify, Twilio, or similar
- Work in a team where multiple developers are on different branches simultaneously
- Spend more than two minutes per week updating webhook endpoint URLs
When you don’t need Hookman
- You only ever develop against one environment (e.g. always
localhostvia the Stripe CLI) - Your webhook provider supports multiple endpoints natively and you’re happy managing them
- You’re not using preview/branch deployments
Architecture
Hookman is built entirely on Cloudflare’s infrastructure:
- The proxy runs on Cloudflare Workers at the edge, worldwide
- Route config is stored in Cloudflare KV — lookups happen in < 1ms
- Webhook payloads (for replay) are stored in Cloudflare KV with automatic TTL-based expiry
- Structured data (projects, deployments, logs) lives in Cloudflare D1
This means the proxy itself adds negligible latency — it’s just a KV read and a forwarded fetch, both happening at the edge closest to your webhook sender.
Next steps
import { LinkCard, CardGrid } from ‘@astrojs/starlight/components’