BackGetting started

Why NotifyKit

When a notification framework inside your app is a better fit than a hosted or self-hosted notification platform, and when it is not.

The Problem

A notification starts as an email or an inbox row. Then it needs preferences, unsubscribe links, retries, deduplication, quiet hours, a live unread count, and a way to find out why someone never got it. Rebuilding those for every feature is slow and easy to get wrong.

A notification platform solves that, but it brings its own costs: a remote control plane, a second data store holding your users’ notification history, workflows that have to be kept in sync across environments, and another deployment model. NotifyKit packages the reusable pipeline and leaves the definitions, authentication, data, and deployment inside your app.

Operating Model

The real difference between the options is who runs what:

NotifyKitManaged platformSelf-hosted platform
Runs inYour app or workerThe vendor's serviceSeparate services you operate
DefinitionsTypeScript you importDashboard, API, or synced filesDashboard or code-first workflows
StateYour app's databaseThe vendorThe platform's database
Visual editorNoUsuallyUsually
Durable deliveryYou connect a queue and workerManagedYou run the platform's workers
ChannelsA focused set; providers are pluggableBroadBroad
Mainly forApplication engineersEngineering, product, and growthPlatform teams

Good Fit

  • A TypeScript monolith, modular monolith, or small service.
  • Transactional product notifications rather than marketing campaigns.
  • A team that already runs Postgres or SQLite and wants to own the data.
  • Notifications that should be reviewed, tested, and deployed like any other code.
  • A team willing to own queueing and provider operations in exchange for that control.

Poor Fit

  • Non-engineers need to design and publish workflows without a deploy.
  • You need dozens of ready-made providers, mobile push, or marketing broadcasts today.
  • You would rather pay for managed deliverability, analytics, and support than run infrastructure.
  • You need a visual journey builder with branching, multi-step campaigns.
  • Delivery must survive crashes and you cannot run a durable worker. See Production readiness.

Alternatives

Knock, Courier, and SuprSend are strong choices when a managed control plane is an advantage. Novu offers both a cloud service and a self-hosted platform, including code-first workflows. None of this means those tools lack type safety or source control. The difference is that NotifyKit needs no notification platform at runtime: notify.send() is a function call in your own process.

Where Next