A lightweight tool to generate unique URLs for capturing, inspecting, and debugging HTTP requests (webhooks, callbacks, etc.) in real-time. Built with Next.js and Vercel KV.
- Unique Slugs: Generate random, date-stamped slugs (e.g.,
x7z9-0112) to ensure uniqueness and sorting needs in future. - Universal Capture: Records ALL HTTP methods (
GET,POST,PUT,DELETE,PATCH,OPTIONS, etc.). - Smart Detection: automatically distinguishes between browser visits (to show the UI) and API requests (to be recorded).
- Request Inspection: View headers, body (JSON), query parameters, IP address, and timestamp.
- Persistance: Requests are stored in Vercel KV (Redis). This is handled in the backend, currently using free tier as at Jan 12 2026.
- Framework: Next.js
- Database: Vercel KV (Upstash Redis)
- Styling: Tailwind CSS (via
@vercel/examples-ui) - Deployment: Vercel
- Version Control: Github (Ofcourse)
- Positive Attitude
- Node.js 18+
- A Vercel account (for KV storage)
- Housekeeping.
- Please star the repo, it means a lot to me.
- Raise issues if you find any.
- Sponsor the project too, your support will go a long way.-
Clone the repository:
git clone https://github.com/patricmutwiri/callback-handler-ui.git cd callback-handler-ui -
Install dependencies:
npm install
-
Configure Environment Variables: Copy the example environment file:
cp .env.example .env.local
Fill in your Vercel KV credentials in
.env.local:KV_URL="redis://..." KV_REST_API_URL="https://..." KV_REST_API_TOKEN="..." KV_REST_API_READ_ONLY_TOKEN="..."
-
Run Locally:
npm run dev
Open http://localhost:3000 in your browser.
Visit the home page. You can enter a custom slug or click Random to generate one (e.g., my-test-0112). Click Start Recording to proceed to your dashboard.
Use the generated URL to send any HTTP request.
Example (cURL):
curl -X POST http://localhost:3000/record/my-test-0112 \
-H "Content-Type: application/json" \
-d '{"event": "user_signup", "id": 123}'Example (Webhook): Configure your 3rd party service (Stripe, Slack, etc.) to allow the generated URL as the webhook endpoint.
Refresh the dashboard page (/record/[slug]) to see the incoming requests appear. You can see the method, timestamp, headers, and body payload.
Deploy easily with Vercel:
Made with ❤️ for us by us. Happy Coding!
While you're here, you can buy me a coffee via PayPal - #ubuntu!
