Hookline

Web Application & CLI

Hookline

Catch every webhook, replay anything and pipe it to localhost. A live webhook inbox with signature checks, reliable forwarding and a CLI tunnel.

Technologies Used

Next.jsReactTailwind CSSMotiontRPCBetter AuthGoBunPostgreSQLDrizzle ORMRedisStripe

Hookline is a tool for working with webhooks. You get a URL that captures every request sent to it, shows it live, lets you inspect and replay it, and forwards it to your own machine through a CLI tunnel. No more redeploying just to see what Stripe or GitHub actually sent. It runs at hookline.vante.app, and the CLI installs with npm, Homebrew or Scoop.

What it does

Capture and inspect

  • Webhook URLs that accept every method on any path, with configurable responses and delays, and temporary endpoints that need no account
  • A live inbox where requests appear in about 100 ms, and the stream picks up where it left off after a disconnect
  • Filters, full-text search, keyboard shortcuts, and JSON, form, XML, raw and hex views. Sensitive headers stay masked until revealed, and every reveal is audited

Replay, verify and forward

  • Replay any request to a destination, to the CLI or to any URL, exactly as captured or after editing it
  • Signature verification for Stripe, GitHub, Shopify, Slack, Discord, Standard Webhooks and generic HMAC, checked the moment a request lands
  • Destinations with method, header and JSON-path filters, durable retries with exponential backoff and a full attempt log. Forwarding is blocked from ever reaching private networks

CLI, teams and API

  • A hookline CLI that tunnels webhooks to localhost, with path rewrites, method filters and a sync mode that returns your server's response to the sender
  • Organizations with roles, invitations, an audit log, passkeys and TOTP two-factor authentication
  • A versioned REST API described by OpenAPI, with scoped API keys, idempotency keys and rate limits, plus Free, Pro and Team plans with Stripe billing

How it's built

Hookline is a monorepo with three services. A Go edge server takes in webhooks, streams them to open inboxes over server-sent events and runs the CLI tunnels. A Go worker handles forwarding, retries, replays and retention, using PostgreSQL as its job queue. The Next.js web app serves the dashboard, docs and REST API, with tRPC between the dashboard and the server and Better Auth for accounts. PostgreSQL, through Drizzle and sqlc, holds everything durable, with requests in time-partitioned tables. Redis carries live events between services, and the edge keeps working without it. The CLI is a native Go binary for macOS, Linux and Windows, released through goreleaser to GitHub, npm, Homebrew and Scoop. CI runs linting, unit tests, a Playwright suite and vulnerability scans, and every green build on main deploys to Railway automatically. The whole stack can also be self-hosted with a single Docker Compose command.

Role & Responsibilities

I designed and built the whole project on my own: the edge and worker services, the tunnel protocol and CLI, the database schema, the web app, dashboard and admin area, the public API and its docs, billing, and the release and deployment pipeline.