Hexclave

React to every user event in real time

Signed and tamper-proof·Retries when your server hiccups·Manage it all from the dashboard

Five lines to verify. Zero lines to retry.

Sign-checked at the door·Typed events on the way in·Backoff & retries handled for you

ts
1import { Webhook } from "svix";
2 
3export async function POST(req: Request) {
4 const wh = new Webhook(process.env.WEBHOOK_SECRET!);
5 const body = await req.text();
6 
7 // Throws if the request was tampered with or replayed.
8 const event = wh.verify(body, {
9 "svix-id": req.headers.get("svix-id")!,
10 "svix-timestamp": req.headers.get("svix-timestamp")!,
11 "svix-signature": req.headers.get("svix-signature")!,
12 });
13 
14 await handle(event);
15 return new Response("ok");
16}

Webhooks that just show up

Backoff and retries, done for you·Verified in five lines·Endpoints, filters, and tests in the dashboard

Delivery · msg_2f4a
Auto-retry
user.created
evt_7k9p…
{
"type": "user.created",
"data": { "id": "user_2f4a…" }
}
https://api.acme.com/hooks
Attempts0/3
1
Attempt 1·immediately
2
Attempt 2·after 5s
3
Attempt 3·after 30s
Backing off·queued
Five tries max

01·Delivered, no matter what

If your server hiccups, we try again

  • Hexclave keeps trying until your server says yes
  • Backoff is built in — no queue to babysit on your side
  • Every failed attempt lands in your delivery log
  • Powered by Svix, the system most modern APIs use
Auto-retryBackoffDelivery log
POST /api/webhooks
Verifying
Headers
svix-idmsg_2f4a9c81
svix-timestamp1714400000
svix-signaturev1,iJWi8nE…
Body
{ "type": "user.created",
"data": { "id": "user_2f4a…" } }
wh.verify(body, headers)
HMAC over timestamp + body
Tamper · replay · spoofing — all caught here5 lines

02·Verify in five lines

Tamper-proof, replay-proof, spoof-proof

  • Every request is signed with your endpoint secret
  • Rotate the secret from the dashboard whenever you want
  • The Svix client does the heavy lifting — you write five lines
  • Tampered bodies, replayed requests, and spoofs all get rejected
SignedReplay-proofRotatable secret
Webhooks · Dashboard
3 endpoints
Endpoints
https://api.acme.com/hooks12ms
https://billing.acme.com/in38ms
https://eu.acme.com/syncretry
Subscribed eventsbilling.acme.com
user.*
created · updated · deleted
team.*
created · updated · deleted
team_membership.*
created · deleted
team_permission.*
created · deleted
Send test event

03·All from the dashboard

Add endpoints, pick events, send a test

  • Wire up a new endpoint without a deploy
  • Each endpoint subscribes to only the events it cares about
  • Hit one button to send a test event and see the response
  • Health, latency, and history all in one place
No deploysPer-endpoint eventsTest events

Ready to react to every user event in real time?

Drop in a single app — or use the whole platform. Either way, you ship faster.

Get started for free