Why I built it
Apps need to tell other apps when something happens — "a customer paid," "an order shipped." Sending that notification once and hoping isn't enough: receivers go down, time out, or get overloaded. HookIt sits in between and makes delivery something you can actually rely on.
The core design decision is Postgres as the queue instead of a broker like
Redis or SQS. The event, its delivery rows, and the idempotency record all
land in a single transaction, so nothing can be stored without being enqueued.
Workers claim batches with SELECT … FOR UPDATE SKIP LOCKED, which lets any
number of them run concurrently without ever grabbing the same delivery twice.
HookIt promises at-least-once, not exactly-once — an HTTP ack can be lost even after a successful POST, so chasing exactly-once over webhooks is impractical. Instead it retries with exponential backoff plus jitter (so a mass outage doesn't resynchronize into a thundering herd) and lets receivers deduplicate on stable event IDs.
Try it live
The hosted instance delivers real crypto-price events into a real Discord channel. From the dashboard you can take the receiver down and watch retries back off, deliveries dead-letter, and a redrive bring everything home — on live traffic.