Notifkit
Open source notification infrastructure you self-host — one API for email, SMS, push, and webhooks with fallbacks, quiet hours, retries, and logs.
Notifkit is an MIT-licensed notification infrastructure engine that runs inside your own stack. Instead of wiring every provider by hand, your application makes a single typed call to one API, and Notifkit handles channel selection, user preferences and consent gates, timezone-aware quiet hours, ordered multi-channel fallback, retries, deduplication, scheduling, multi-step workflows, and queryable delivery logs. Channels cover email, SMS, push, and webhooks.
Under the hood it pairs a lightweight TypeScript SDK and REST API (/v1/notify, /health, Prometheus /metrics) with background worker pipelines built on Redis Streams and PostgreSQL: priority queue lanes, scheduled sends, sliding-window rate limits, circuit breakers around failing providers, a dead-letter queue with replay, 24-hour idempotency deduplication, and RFC 8058 one-click unsubscribe plus automatic hard-bounce suppression. It supports multi-step workflows with wait and waitForEvent steps, project-level multi-tenancy, and both a single-process monolith setup and horizontally scaled distributed services. An MCP server also lets AI agents such as Claude Code or Cursor send notifications, triage delivery issues, and manage templates directly.
Compared to hosted notification platforms like Knock, Courier, OneSignal, or customer.io, Notifkit replaces the per-notification SaaS markup with your own hardware: you keep your data in your PostgreSQL and Redis and bring your own provider accounts — your keys, your billing, your deliverability. First-party transports ship for Resend (email) and Firebase Cloud Messaging (push), while Twilio, SES, Postmark, MessageBird, APNs, or anything else is reachable through a simple Transport class with a send() method. It is deliberately not a marketing automation suite; it is the durable delivery layer behind product notifications such as OTPs, alerts, receipts, and lifecycle messages.








