Open-source webhook inbox and replay engine. Capture, store, forward, and replay webhooks with retries and full visibility.
Hookfreight sits between webhook providers (Stripe, GitHub, Shopify, etc.) and your app:
- Receives webhooks at a unique URL (
/{hook_token}) - Stores the full request (headers, body, metadata)
- Forwards to your destination (
forward_url) - Retries automatically when delivery fails
- Lets you inspect and replay any event
- Webhook capture (headers, body, query params, metadata)
- Reliable forwarding with automatic retries (queue-based)
- Replay any event on demand
- Delivery visibility (request/response, timing, errors, status)
- Multi-app organization (dev/staging/prod)
- Custom auth headers when forwarding
- Self-hosted
- Docker + Docker Compose
git clone https://github.com/YOUR_ORG/hookfreight.git
cd hookfreight
cp env.example .envEdit .env as needed (the defaults work for local Docker).
docker compose up --buildHookfreight will be available at http://localhost:3030
Next steps: See the Quickstart Guide for creating your first app and endpoint.
When you create an Endpoint, Hookfreight returns a hook_token. Point your webhook provider to:
http://<your-host>/{hook_token}
curl -X POST http://localhost:3030/YOUR_HOOK_TOKEN \
-H "Content-Type: application/json" \
-d '{"event":"test","data":{"message":"Hello!"}}'yarn install
yarn dev # Start with hot reload
yarn build # Compile TypeScript
yarn start # Run production buildFull API reference and guides at docs.hookfreight.com
Apache 2.0. See LICENSE.