Deploy Now

SaaS Alternative

OneSignal Knock Courier Novu

Stars

161

Forks

9

Watchers

0

Developer links

NotifKit

One notify() call is all your product needs to reach users on push, email, SMS, chat, and webhooks, with NotifKit deciding how and when each message travels. List the channels in the order you prefer and NotifKit tries each in turn, so a failed push quietly becomes an SMS or an email instead of a lost message. Per-user preferences, consent, and quiet hours in each user's own timezone hold non-urgent sends until morning, while critical messages such as one-time passwords travel their own lane immediately. Templates, multi-step workflows that wait days or block on events, scheduling, throttling, and deduplication all run behind that single call, defined in TypeScript and kept in your repository. Delivery logs record every attempt, and the admin dashboard shows a live activity feed, queue depth per priority lane, workflow runs step by step, and a replayable dead-letter queue. Several products can share one deployment as separate projects with their own API keys, rate limits, and data, and any service can call the REST API without the TypeScript SDK. Ask an AI assistant why a password reset never arrived by connecting the built-in MCP server to Claude Code, Cursor, or another MCP client. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. MIT licensed.

NotifKit
NotifKit
NotifKit

Benefits

  • Failed Push Becomes Email
  • Channels are tried in the order you list them, so an undeliverable push falls back to SMS or email automatically, while preferences, consent, and quiet hours still decide whether the message should travel at all.
  • Messages Survive Worker Crashes
  • Redis Streams consumer groups reclaim in-flight sends when a worker dies, a 24-hour idempotency window stops retries from double-sending, and the dead-letter queue replays failures after circuit breakers and exponential backoff.
  • No Per-Message Bill
  • NotifKit runs entirely on the PostgreSQL and Redis you already operate with provider accounts you already hold, so volume costs infrastructure only, with every feature included and no paid edition waiting behind a license.
  • Ask an Agent Instead
  • The built-in MCP server connects to Claude Code, Cursor, and other MCP clients, so you can ask why a user missed a password reset or how yesterday's campaign performed in plain language.

Features

  • One Call, Every Channel
  • A single notify() call reaches push, email, SMS, Slack, Telegram, Discord, WhatsApp, and webhooks through first-party provider packages for Resend, Firebase, Twilio, and Meta.
  • Fallback and Quiet Hours
  • Channels fall back in listed order when delivery fails, per-user preferences and consent gate every send, and quiet hours in each timezone hold messages while critical traffic skips the wait.
  • Workflows in Code
  • Multi-step sequences wait days, block on events, and survive restarts, written in TypeScript beside your application code and versioned in git instead of a hosted visual builder.
  • Admin Ops Console
  • The dashboard at /admin shows a live activity feed, delivery logs, queue depth per priority lane, step-by-step workflow runs, dead-letter replay, and project and API key management.
  • Multi-Project Tenancy
  • Several applications share one deployment as isolated projects, each with its own API keys, data, and rate limit, reachable over REST from any language or the TypeScript SDK.

Apps Similar to NotifKit