A self-hosted webhook testing and debugging tool. Create webhooks to capture, inspect, and test HTTP requests with real-time updates and signature verification.
- Create Webhooks - Generate unique webhook endpoints instantly
- Request Capture - View all incoming requests with headers, body, method, and status
- Real-time Updates - Live updates via WebSocket when new requests arrive
- Signature Verification - HMAC-SHA256 signature validation using
x-webhook-signatureheader - Test Webhook - Built-in test interface to send requests with automatic signature generation
- Dark UI - Clean, modern dark interface for easy viewing
npm installnpm run devThe server will start on http://localhost:3000.
npm run build
npm start- Open
http://localhost:3000in your browser - Click "+ Create New Webhook"
- You'll receive a unique webhook URL (e.g.,
/webhook-id)
Any HTTP request sent to your webhook URL will be captured:
POST https://your-server.com/<webhook-id>
The request will appear in the dashboard with:
- Timestamp
- HTTP method
- Status code
- All headers
- Request body
Each webhook has a secret key. To verify signatures:
- Include the
x-webhook-signatureheader with your request - The signature is the HMAC-SHA256 hash of the request body using your webhook secret
Example signature generation:
const crypto = require('crypto');
const signature = crypto
.createHmac('sha256', webhookSecret)
.update(requestBody)
.digest('hex');Use the built-in test form on any webhook page:
- Select HTTP method
- Enter JSON body
- Click "Send Request" - signatures are automatically generated
- View response and captured request
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Main dashboard |
/create |
POST | Create new webhook |
/:webhookId |
* | Capture requests |
/view/:webhookId |
GET | View webhook dashboard |
/view/:webhookId/data |
GET | Get requests JSON |
/view/:webhookId/:idx/read |
POST | Mark request as read |
/view/:webhookId/:idx/delete |
POST | Delete request |
| Variable | Description |
|---|---|
VERCEL_URL |
Production URL (auto-detected on Vercel) |
VERCEL_PROJECT_PRODUCTION_URL |
Alternative Vercel URL |
npm run build
vercel deploy├── server.js # Main HTTP server
├── client.js # Frontend JavaScript
├── api/webhook.ts # Vercel API function
├── ui.html # Standalone test UI
└── package.json # Dependencies
MIT License