Why Notification Infrastructure Deserves Real Engineering Attention
Notifications feel simple until they are not. You start with a transactional email for password resets. Then product wants a welcome sequence. Then the mobile team needs push. Then someone asks for an in-app notification feed. Then a big customer requests SMS alerts for critical events. Before you know it, you have five different send paths, three different providers, and no unified way to manage user preferences, delivery logic, or analytics.
This is the problem that dedicated notification infrastructure platforms solve. Instead of wiring up SendGrid for email, Twilio for SMS, Firebase Cloud Messaging for push, and a custom WebSocket layer for in-app notifications, you route everything through a single orchestration layer. That layer handles channel routing, template rendering, preference management, batching, and delivery tracking.
Knock, Courier, and OneSignal are the three platforms we see most in the startups and growth-stage companies we work with. They overlap in some areas but were built with fundamentally different priorities. Knock is developer-first with a strong in-app feed component. Courier is template-first with a visual workflow designer. OneSignal started as a push notification service and expanded into email and SMS. Each has clear strengths, and picking the wrong one means either overpaying or rebuilding integrations six months later.
If you are building a push notification strategy or adding real-time features to your product, this comparison will help you make a deliberate choice instead of defaulting to whatever someone on your team used at a previous job.
Pricing Breakdown: What You Actually Pay at Scale
Pricing is where these platforms diverge most sharply. The free tiers look similar on the surface, but the billing models, usage limits, and upgrade paths are completely different.
Knock
Knock's pricing is based on monthly tracked users (MTUs). Their free tier covers up to 1,000 MTUs with basic features. The Growth plan starts at roughly $250/month for 10,000 users, which includes the in-app feed component, workflow builder, preference center, and analytics. Enterprise pricing is custom and adds SAML SSO, SLAs, dedicated support, and advanced security features. The key thing to understand about Knock's pricing is that you pay per user who receives at least one notification in a billing period, not per notification sent. For apps with high notification volume per user, this model is significantly cheaper than per-message pricing. For apps with a large user base but low engagement, it can get expensive fast.
Courier
Courier bills per notification sent, which is the opposite model from Knock. Their free tier is genuinely generous: 10,000 notifications per month with access to most features including the visual template designer and automation engine. Paid plans start at approximately $100/month and scale based on volume. Enterprise plans add SLAs, audit logs, and tenant isolation. Courier's per-notification billing is predictable if your volume is steady, but it can spike during high-traffic events like product launches or promotional campaigns. The free tier is the best in this category for early-stage products that are still figuring out their notification patterns.
OneSignal
OneSignal's pricing reflects its push-first heritage. Push notifications are free for unlimited subscribers on their free plan, which is a significant advantage if push is your primary channel. The free plan includes basic segmentation, A/B testing, and analytics. Their paid Growth plan starts at $9/month, which is the lowest entry point of any platform here. Professional plans run around $99/month and add advanced analytics, intelligent delivery optimization, and priority support. Email and SMS are available as add-ons with their own per-message pricing. If your notification strategy is 80% push and 20% everything else, OneSignal is almost certainly the cheapest option. If you need balanced multi-channel support, the add-on costs stack up quickly.
Novu (Open Source Alternative)
Novu deserves mention here as the open-source option. Self-hosted Novu is free with no usage limits, which makes it attractive for teams with DevOps capacity and budget constraints. Their managed cloud offering has a free tier with 30,000 events per month and paid tiers starting around $250/month. The tradeoff is clear: you get full control and no vendor lock-in, but you own the infrastructure, uptime, and maintenance burden. For teams that are already running Kubernetes and have a platform engineer on staff, Novu is worth serious consideration. For a five-person startup, self-hosting a notification platform is usually a distraction.
Pricing summary: OneSignal is cheapest for push-heavy use cases. Courier has the best free tier for experimentation. Knock offers the most predictable costs at scale for high-volume-per-user apps. Novu is free if you can self-host.
Multi-Channel Support: Email, Push, SMS, In-App, and Chat
The whole point of a notification infrastructure platform is abstracting away the complexity of multiple delivery channels. But not all platforms treat all channels equally.
Knock: Strong Across All Channels
Knock supports email, push (iOS, Android, web), SMS, in-app feed, Slack, Microsoft Teams, and webhooks. Every channel is a first-class citizen in their workflow builder. The in-app feed is where Knock particularly stands out. They provide a pre-built, customizable React component (@knocklabs/react-notification-feed) that gives you a production-ready notification bell and feed in under an hour. This component handles real-time updates via WebSocket, read/unread state, pagination, and archiving. If your product needs an in-app notification center (and most SaaS products do), Knock saves you weeks of custom development.
Courier: Broadest Integration Library
Courier supports email, push, SMS, in-app inbox, Slack, Discord, Microsoft Teams, WhatsApp, and dozens of other providers through their integration marketplace. They have the broadest provider support of any platform in this comparison, with pre-built connectors for over 50 delivery services. Where Courier shines is letting you swap providers without changing your application code. Want to switch from SendGrid to Postmark for email? Change the integration in Courier's dashboard, not in your codebase. Their in-app inbox component exists but is newer and less mature than Knock's. It works, but you will spend more time customizing it.
OneSignal: Push-First, Everything Else Second
OneSignal's push notification support is best in class. They handle iOS, Android, web push, Huawei, and Amazon Fire with sophisticated delivery optimization that automatically selects the best time to send based on user behavior. Their push SDK is mature, well-documented, and battle-tested at massive scale. Email was added in 2022 and SMS in 2023. Both work, but they feel like additions to a push platform rather than native capabilities. There is no in-app notification feed component. If you need an in-app inbox alongside push, you will need to either build it yourself or combine OneSignal with another tool.
Channel support summary:
- In-app feed: Knock (excellent) > Courier (good) > OneSignal (not available)
- Push notifications: OneSignal (excellent) > Knock (good) > Courier (good)
- Email: Courier (excellent) > Knock (good) > OneSignal (basic)
- SMS: Courier (excellent) > Knock (good) > OneSignal (basic)
- Chat integrations (Slack, Teams): Knock (excellent) > Courier (good) > OneSignal (not available)
Developer Experience and SDK Quality
Notification infrastructure is deeply integrated code. You call it from dozens of places across your application. The SDK quality, API design, and documentation determine whether integration takes a day or a week.
Knock: Best Developer Experience
Knock was built by engineers who previously worked on notification systems at large companies, and it shows. Their API is clean and consistent. The Node.js SDK follows modern patterns with full TypeScript support, async/await, and clear error handling. A basic notification trigger looks like this: you call knock.workflows.trigger() with a workflow key, a list of recipients, and a data payload. That is it. Knock handles channel routing, template rendering, preference checks, and delivery. Their documentation is excellent, with real code examples, migration guides, and a changelog that actually explains what changed and why. The workflow builder UI is intuitive enough that non-engineers on your team can modify notification logic without deploying code.
Courier: Visual-First Approach
Courier's standout developer experience feature is their visual template designer. You design notification templates in a drag-and-drop editor that renders across email, push, and in-app with a single template. For teams where product managers or marketers need to edit notification copy, this is a major advantage. The API itself is straightforward. You call courier.send() with a recipient, a template ID, and data. The SDK supports Node.js, Python, Ruby, Go, and Java. Documentation is solid but occasionally lags behind new features. One friction point: Courier's visual designer is powerful but has a learning curve. Complex conditional logic in templates can be harder to debug than code-based templates.
OneSignal: Simple but Limited
OneSignal's API is the simplest of the three because it does fewer things. Their REST API and SDKs are focused on creating notifications and managing subscribers. For push notifications, the SDK handles device registration, token management, and delivery seamlessly. The mobile SDKs for iOS and Android are particularly well-built, with native platform integration that handles edge cases like token refresh, notification grouping, and quiet hours. Where the DX falls short is in orchestration. OneSignal does not have a workflow engine, so if you need to send a push notification, wait two hours, check if the user opened it, and then fall back to email, you are building that logic yourself or bolting on another tool.
DX summary: Knock has the best overall developer experience for full-stack teams. Courier wins when non-engineers need to manage templates. OneSignal has the best mobile SDKs for push-only use cases.
Preference Management, Batching, and Analytics
These three features separate a real notification platform from a glorified API wrapper. How well each platform handles user preferences, notification batching, and delivery analytics determines whether your users love or hate your notifications.
Preference Management
Knock provides a complete preference management system with a pre-built UI component. Users can control which notification types they receive and through which channels, per category. The preference center is embeddable in your app and syncs with Knock's backend automatically. This alone saves significant development time. Courier offers preference management through their "Courier Preferences" feature, which provides similar functionality but requires more custom UI work. OneSignal has basic subscription management (opt-in/opt-out per channel) but nothing comparable to the granular per-category, per-channel preference systems that Knock and Courier offer.
Batching and Digests
Batching is critical for preventing notification fatigue. If ten people comment on a user's post in five minutes, you want to send one notification that says "10 people commented" rather than ten individual pings. Knock has the strongest batching system, with configurable batch windows, merge strategies, and digest templates. Courier supports batching through their automation engine with similar flexibility. OneSignal has basic throttling (rate limits per user) but does not support true batching or digest aggregation. If your product generates high-frequency events, this is a dealbreaker for OneSignal as a standalone solution.
Analytics and Observability
Knock provides delivery logs, engagement metrics (open rates, click rates), and a real-time event stream for debugging. Their logs are detailed enough to trace exactly why a notification was or was not sent, including preference checks and channel routing decisions. Courier offers similar delivery analytics with a focus on template performance, showing which templates drive the most engagement across channels. OneSignal has the most sophisticated analytics for push notifications specifically, including delivery rates, influenced opens (app opens within a time window after notification), and A/B test results. For push-focused products, OneSignal's analytics are genuinely superior.
Feature comparison:
- Preference management: Knock (best, includes UI) > Courier (good, needs custom UI) > OneSignal (basic)
- Batching/digests: Knock (excellent) > Courier (good) > OneSignal (limited)
- Push analytics: OneSignal (excellent) > Knock (good) > Courier (good)
- Delivery debugging: Knock (excellent) > Courier (good) > OneSignal (adequate)
When to Use Each Platform (and When to Build Custom)
After working with all three of these platforms across dozens of client projects, here is our opinionated take on when each one is the right choice.
Choose Knock When:
- You are building a SaaS product that needs an in-app notification feed
- You want a single platform that handles all channels well, not just one channel exceptionally
- Your engineering team values API quality and TypeScript support
- You need sophisticated batching, digests, or workflow logic
- You are willing to pay $250+/month for a polished, complete solution
Knock is our default recommendation for most B2B SaaS products. The in-app feed component alone justifies the cost when you factor in the engineering time to build and maintain a custom notification center. If you are scaling your app to thousands of users and need reliable multi-channel delivery, Knock handles it without drama.
Choose Courier When:
- Non-technical team members need to create and edit notification templates
- You want the flexibility to swap underlying providers (SendGrid to Postmark, Twilio to Vonage) without code changes
- You are in the experimentation phase and need a generous free tier
- Your notification templates are complex with heavy conditional logic and localization
- You are running a multi-tenant product where different customers need different notification branding
Courier is the strongest choice for companies where product and marketing teams are actively involved in notification design. The visual template editor is not a gimmick. It genuinely reduces the feedback loop between "we want to change this notification" and "it is live in production" from days to minutes.
Choose OneSignal When:
- Push notifications are your primary engagement channel (mobile apps, news apps, e-commerce)
- You need the cheapest possible entry point and push is your main channel
- You want sophisticated push optimization (intelligent delivery timing, segmentation)
- Email and SMS are secondary channels you can wire up separately or add later
- You do not need an in-app notification feed
OneSignal is the clear winner for consumer mobile apps where push is the dominant notification channel. Their free tier for push is unbeatable, and their delivery optimization genuinely improves engagement rates. Just know that if your notification needs grow beyond push, you will likely outgrow OneSignal or need to supplement it with another tool.
Consider Novu (Open Source) When:
- You have a platform engineer who can own the self-hosted deployment
- Data sovereignty requirements prevent using third-party SaaS for notifications
- You want full control over the notification pipeline and are willing to maintain it
- Budget is extremely tight but you have engineering capacity
Build Custom When:
- Your notification logic is deeply coupled to business rules that change constantly
- You only need one or two channels and the volume is low
- You are already using a framework like Bull/BullMQ, Celery, or Temporal that can handle queuing and retries
- Regulatory requirements mandate that notification data never leaves your infrastructure
Building custom notification infrastructure makes sense less often than most engineering teams think. The initial implementation is not hard. The ongoing maintenance, edge case handling (retries, deduplication, preference sync, timezone-aware delivery), and multi-channel complexity are what get expensive. Most teams underestimate this by 3x to 5x.
Our Recommendation and Next Steps
For the majority of startups and growth-stage products we work with, Knock is the best default choice. It covers the most ground with the least friction. The in-app feed component, preference center, and workflow builder save weeks of development time that you can spend on your actual product. At $250/month for 10,000 users, it is not cheap, but it is significantly less than the engineering cost of building and maintaining equivalent functionality.
If your budget is tighter and you are still figuring out your notification strategy, start with Courier's free tier. The 10,000 free notifications per month give you room to experiment without commitment, and the visual designer lets you iterate on templates quickly.
If you are building a consumer mobile app where push is king, start with OneSignal. The free push tier and $9/month entry point are impossible to beat. Layer on email and SMS later as your engagement strategy matures.
Regardless of which platform you choose, invest time upfront in designing your notification data model: what events trigger notifications, which channels each event uses, and how users control their preferences. Getting this architecture right early prevents expensive rewrites later.
We have implemented notification infrastructure for dozens of products across all of these platforms. If you are trying to decide which approach fits your product and your budget, we can help you evaluate the options and get the integration right the first time. Book a free strategy call and we will walk through your specific requirements.
Need help building this?
Our team has launched 50+ products for startups and ambitious brands. Let's talk about your project.