Notify docs
Guides

Build with Notify.

Nineteen guides, each one self-contained. Start with getting started if you have not sent a notification yet.

Every TypeScript sample on these pages is compiled against the published @productcraft/notify, -js and -react packages before the docs ship. Looking for one endpoint? See the API reference.


Guides

The guides

01 · Send from Node

identify, send to one or a thousand recipients, read the result, look a notification up, cancel and retract.
Read more

02 · Python, Go, Ruby and curl

No Node SDK needed: the same send, recipient upsert and token mint over plain HTTP, from the OpenAPI spec.
Read more

03 · Notification types as code

Keep categories and types in your repo, apply them with PUT …/by-key on deploy, promote them from staging, export what you have.
Read more

04 · An inbox in React

The token route, <NotifyProvider> and <NotifyInbox/>: bell, unread badge, real-time list, action buttons, theming.
Read more

05 · Next.js App Router

A route handler that mints tokens from your session, a client provider in a Server Component tree, router navigation.
Read more

06 · Vue, Svelte and plain JavaScript

@productcraft/notify-js: the inbox store, real-time updates, marks and preferences without React.
Read more

07 · A preferences screen

Categories with defaults, mandatory channels, <NotifyPreferences/>, quiet hours and one-click email unsubscribe.
Read more

08 · Web push in 10 minutes

No Apple or Google account: keys Notify generates, a service worker, a button, a test send. Safari and iOS rules included.
Read more

09 · iOS push (APNs)

Create an APNs key in your Apple Developer account, register tokens from Swift, sandbox vs production, time-sensitive and rich push.
Read more

10 · Android push (FCM)

A dedicated Firebase service account, google-services.json, registering tokens from Kotlin, notification channel ids.
Read more

11 · React Native and Expo

Native APNs and FCM tokens (not Expo push tokens), the inbox with a streaming fetch, pausing in the background.
Read more

12 · Devices, logout and data-only push

Register on every app start, unregister on logout, what pruning does, background (data-only) pushes.
Read more

13 · Email through Mail

A Mail template per type, variables, suppression, bounces and complaints, the email budget and one-click unsubscribe.
Read more

14 · Scheduling, cancellation and routing

send_at and delay_seconds, cancellation keys, fallbacks, and "email only if the inbox item is still unread after 15 minutes".
Read more

15 · Webhooks

The fourteen events, verifying signatures, reacting to failed deliveries, pruned devices and invalid credentials.
Read more

16 · Idempotency and retries

Deterministic Idempotency-Keys, what a retried send does, provider retries, and why a push can arrive twice but shows once.
Read more

17 · Testing without devices

dry_run and Explain, the inbox as a test channel, the SES mailbox simulator, mocks in unit tests, token caching.
Read more

18 · Erasure and retention

Erase a recipient (and what Mail keeps), how long each record lives, linked Auth users, workspace deletion.
Read more

19 · Migrating from Knock, Courier, OneSignal or Novu

Concept map, bulk import with devices and preferences, keeping web push subscriptions, and a dual-run cutover.
Read more

Packages

Which package do I need?

  • @productcraft/notify: your server. Send, recipients, types, tokens, channels, webhooks, the message log. Also the low-level client scope notify.client({ token }) for browsers and apps.
  • @productcraft/notify-js: browsers and React Native without React. An inbox store with a cache and real-time updates, preferences, web push and a ready-made service worker.
  • @productcraft/notify-react: <NotifyInbox/>, <NotifyPreferences/> and hooks, on top of notify-js.
  • Not on Node? The API is plain HTTP and JSON: Python, Go, Ruby and curl. Native iOS and Android apps call the client API directly (guides 09 and 10).