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 scopenotify.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 ofnotify-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).