type: service
status: active
timestamp: 2026-06-20
tags: [notifications, multi-channel, knock, primary]

Knock

Multi-channel notification orchestration — 10K notifs/mo free, on top of FCM

Knock

Role

Notification orchestration — the family’s single workflow engine for cross-channel notifications. One Knock workflow per event type (billing receipt, password change, comment reply, feature rollout) fans out to the right channels in the right order, dedupes within a window, and surfaces in-app + email + SMS + web push from one place.

Knock does not replace FCM — FCM stays as the transport for the web-push channel. Knock’s web-push provider config points at our Firebase project. Knock owns scheduling, batching, channel selection, and per-user preference; FCM owns “actually push to the browser.” Same split for email (Resend is the SMTP transport behind Knock’s email channel).

Free tier

Card / subscription required?

NO. Free-tier sign-up is email-only. No payment method requested. Stays free as long as monthly volume stays under 10K notifications across all channels.

What runs through Knock

Channel mapping

ChannelTransportWhy Knock + transport split
Web pushFCMFCM is free unlimited on Spark + iOS PWA support
EmailResendResend already wired for transactional
SMSKnock-bundled (Twilio / MessageBird)Pay-per-SMS only, no monthly fee
In-app feedKnock-hostedDrop-in <KnockFeed /> component
SlackKnock directUsed for ops alerts only

Alternatives

Swap cost

Medium — Knock workflow definitions live as YAML in the Knock dashboard; export-to-JSON is supported. Swapping means recreating workflows in Courier or similar. Channel transports (FCM, Resend) do not change, so the Worker-side code stays the same.

Why this is our pick

Free 10K/month is generous — the family’s combined notification volume across 11+ sites is well under that. The orchestration model fits how we think about notifications (one event → many channels), and it leaves FCM and Resend doing what they’re best at. The in-app feed component drops in as <KnockFeed /> — saves us building a notification center in @chirag127/oriz-kit.

Cross-refs


Edit on GitHub · Back to index