
# Sparrow
**Self-hosted webhook delivery. Retries, signing, health tracking, and a dashboard, with PostgreSQL as the only dependency.**
[](https://github.com/sarathsp06/sparrow/releases)
[](https://github.com/sarathsp06/sparrow/actions/workflows/ci.yml)
[](https://go.dev)
[](https://github.com/sarathsp06/sparrow/pkgs/container/sparrow)
[](https://sarathsp06.github.io/sparrow/)
[](LICENSE)
[](https://www.bestpractices.dev/projects/15538)

[Quick start](#quick-start) · [What you get](#what-you-get) · [Satellites](#satellites) · [Documentation](#documentation) · [Contributing](#contributing)
Sparrow is open-source webhooks as a service that you host yourself, a self-hosted alternative to Svix, Hookdeck and Convoy. It sends your webhooks so you don't have to build the boring, hard parts: async fan-out, retries with backoff, Standard Webhooks signatures, per-endpoint health, full delivery history, and a consumer portal where your customers manage their own endpoints.
It is one Go binary with an embedded Svelte dashboard. No Redis, no broker, no sidecar workers. PostgreSQL holds the data and, through [River](https://riverqueue.com), the job queue too. Payloads never leave your network.
```text
your services ──▶ Sparrow API + dashboard ──▶ PostgreSQL + River ──▶ signed deliveries to subscribers
```
## Quick start
**Run it** with Docker Compose. No clone, no secrets, ready for local evaluation:
```bash
curl -O https://raw.githubusercontent.com/sarathsp06/sparrow/main/deploy/docker-compose.yml
docker compose up -d
```
Open