Every verified webhook is queued, retried on failure, deduplicated, and recoverable from a dead-letter queue. Bring Your Own Keys (BYOK) — your Upstash account, zero infrastructure. Your data never leaves your stack.

Tern never manages your Upstash credentials. Pass your QStash token — your events flow through your account directly. No vendor lock-in. No data routed through Hookflo's servers.
No event gets silently lost. Signature invalid → non-retryable. QStash down → retryable. Handler fails → backoff. Exhausted → DLQ.
queue: true is zero-config for Next.js on Vercel. Use explicit config for Cloudflare Workers, custom env names, or non-Vercel deploys.
Events exhausting all retries land in your DLQ. Inspect them. Fix the root cause. Replay any time.
Tern resolves a stable deduplication ID per platform — Stripe idempotency key, GitHub delivery header, Clerk svix-id — with SHA-256 hash fallback. QStash drops duplicates within a 10-minute window.
Tern is free and open source. You pay Upstash directly — no markup, no platform fee, no lock-in.
| Volume | Hookdeck | Tern + QStash |
|---|---|---|
| Base/month | $39 | $0 |
| 500K events | $44/mo | ~$5/mo |
| 5M events | $89/mo | ~$50/mo |
| Data through | Their infra | Your Upstash |
Open source · MIT licensed · Built at Hookflo