Start here

Introduction

What DeadHook is, what it solves, and where its reliability guarantees stop.

On this page

DeadHook is a webhook reliability layer. You give it a public ingestion URL, authenticate the provider, store each Event, and deliver it to HTTPS Destinations with retries, inspection, a dead-letter queue, and manual recovery.

It is built for teams that receive webhooks from a provider and need to know what happened after the first 2xx or 5xx.

What DeadHook solves

  • Durable acceptance. An authenticated Event is accepted only after DeadHook has recorded it and created the Delivery work for every active Destination.
  • Signature-aware ingress. Sources support Standard Webhooks, generic bearer tokens, Stripe signatures, and Shopify HMAC verification.
  • Independent delivery. A Destination failure does not erase the Event. You can inspect attempts, retry behavior, and terminal states.
  • Recovery. Failed Deliveries appear in the Dead Letter Queue. Authorized users can replay them or stop automatic retries.
  • Organization isolation. Your Organization's data is isolated, and access is controlled by your membership role.
  • Operational visibility. Event Explorer, response inspection, and delivery timelines make failures explainable.

What DeadHook does not solve

  • It is not exactly-once delivery. Delivery is at least once. Your Destination must be idempotent.
  • It does not guarantee that a Destination will eventually succeed. Retries are bounded by attempt count and a 24-hour retry window.
  • It does not transform, map, or validate your business payload. The raw body is forwarded.
  • It does not make a private or non-HTTPS Destination public. Only public HTTPS Destinations are accepted.
  • It does not replace provider-specific webhook verification. Choose the Source mode that matches the provider, or terminate and re-sign at your own trusted edge.
  • Source, Destination, and Event configuration is handled securely in the DeadHook dashboard.

The shortest mental model

Provider ──signed POST──▶ Source ──Event──▶ one Delivery per active Destination
                                              │
                                              ├─ attempt 1 → success
                                              └─ attempt N → retry / dead letter → replay

A Source is an ingestion endpoint. A Destination is where DeadHook sends an outbound webhook. An Event is the durable inbound record. A Delivery is the independent promise to send that Event to one Destination. An Attempt is one HTTP request.

Continue with the Quickstart or read Core concepts.