Hookdeck gets webhooks into your systems reliably. Hookfire gets them in front of a person. Different jobs, often at the same company.
These two get compared because they both sit at the front of a webhook, but they are pointed in different directions, and choosing between them on a feature grid would mean answering a question nobody asked.
Hookdeck's consumer is a system. It exists so that the events your application depends on survive your deploys, your outages and your rate limits: they are received at the edge, queued, retried, filtered, transformed and delivered to your endpoints, with a record of every attempt and a way to replay in bulk when something was wrong for six hours. It is infrastructure, and the win is measured in events that did not get lost.
Hookfire's consumer is a person. It exists so that somebody finds out. The value is not in the event reaching a machine. It is in the sentence that ends up on a lock screen at the moment the charge failed, with the amount and the customer already in it, written by somebody who looked at what Stripe actually sends. Everything around it is about that: filter rules so the phone only buzzes for what matters, priorities so the important ones cannot be slept through, quiet hours so the unimportant ones can, channels so a team sees what a team should see.
There is genuine overlap in the middle, since both filter, both retry, both keep a delivery history and both push back against spikes, but the overlap is in the mechanism, not in the point. Hookdeck's rate limiting protects your endpoint from a flood. Hookfire's hourly cap protects a human being from two hundred buzzes, which is why, past the cap, the events still arrive and still land in the history: they simply stop interrupting anyone.
The shape of each tool rather than its price list, because that is the part that is still true next quarter.
| Hookdeck | Hookfire | |
|---|---|---|
| Who the event is for | Your application or service | A person: phone, inbox, email or a team channel |
| What you set up | Connections, rules and destinations, in a dashboard or by API | An integration and a list of events, in a form, in a few minutes |
| Local development | A CLI that forwards live events to localhost while you build | Not a development tool |
| Transformation | Change the payload before it reaches your code | No payload transformation; templates change what the notification says, not what is delivered onward |
| Filtering | Rules on the event before it reaches a destination | Rules on the payload before anyone is interrupted, written as dot path, operator and value |
| Retry and replay | Retries and bulk replay as a core part of the gateway | Three automatic attempts per delivery, plus replaying one by hand from the history |
| Pushing back on spikes | Rate limiting so a burst does not overwhelm a destination | An hourly cap per integration; past it events still arrive and are recorded, they just stop buzzing |
| Noticing silence | Alerting on delivery problems | An integration that was delivering and has stopped raises its own alert |
Not a generic rendering of the payload: a sentence for `charge.failed` specifically, with the amount and the customer in the title, and a tap-through link to the charge.
The same integration can push to one person, email another and post to a shared channel, because the people are the destinations.
Critical alerts re-send every five minutes, up to six times, until somebody acknowledges them through the API, a concept that only makes sense when the consumer is human.
Three different ways of saying not now, none of which lose the event, all of which would be meaningless for a machine destination.
Paste a URL, paste a signing secret, tick the events you care about. No connections to model and nothing to deploy.
Hookdeck is an event gateway for developers: it ingests webhooks, queues them, retries them, filters and transforms them, routes them to destinations and gives you the observability and replay around all of that, including forwarding events to localhost while you are building.
33 providers already mapped and verified, turned into notifications a person can act on.
They sit in series without arguing. A gateway in front of your application and Hookfire beside it is a common enough shape: providers can usually send the same event to two URLs, so your systems get the reliable path and your phone gets the readable one, without either depending on the other.
From the Hookfire side there are two ways to connect them. Hookfire can forward a webhook it has already verified on to your own HTTPS endpoint, signed with a per-destination secret in the same timestamped HMAC scheme Stripe uses, with the destination re-checked against a fresh DNS lookup immediately before each request. And on Max, a custom source accepts JSON from anything that can POST, including a gateway, once you have written a short YAML definition saying what each event's notification should say.
What Hookfire will not do is pretend to be the reliable path. It makes three attempts per delivery and keeps a history you can replay by hand. If your requirement is that no event is ever lost, that requirement belongs to a gateway.
If the events already flow reliably and nobody finds out about them, that is the gap Hookfire fills.