NitroHook

2026/04/01

NitroHook

NitroHook is a self-hosted webhook gateway that receives, transforms, and fans out webhook deliveries to multiple destinations — HTTP endpoints, Slack, email (SMTP), Twilio SMS, and sandboxed JavaScript handlers. Built with Go, PostgreSQL, and Redis Streams.

Sources list

Features

Transform script editor Monaco-powered script editor with inline testing against recorded payloads.

Architecture

Two cooperating processes backed by PostgreSQL and Redis:

  1. API server — receives incoming webhooks at POST /webhooks/:sourceSlug, persists the payload + headers, and publishes a delivery ID to a Redis Stream. Also serves the web UI, REST API, and Prometheus metrics.
  2. Fan-out worker — pool of consumers reads from the Redis Stream consumer group, resolves the source’s active actions, runs transform scripts, and dispatches through a pluggable dispatcher registry. Failed attempts schedule retries; a background poller sweeps retryable attempts and pending deliveries as a catch-up mechanism.

A delivery is marked completed only when every action succeeds or exhausts its retries.

Actions per source Per-source action list — toggle active/inactive inline, add webhooks/Slack/SMTP/Twilio/JS handlers.

Events list Event log — every incoming webhook with its status, idempotency key, and receive time.

Event detail with attempts Drill into an event to see headers, payload, and per-attempt HTTP status for every fan-out action.

Tech Stack