Guides/How to Add a Notification Center to Your App/Build vs Buy a Notification Center

Chapter 4

Build vs Buy a Notification Center

An honest look at building a notification center versus buying one: what building really costs, when it's worth it, and how Courier compares to Novu, MagicBell, Liveblocks, and OneSignal.

How to Build a Notification Center

Last updated: July 2026

Key takeaways

  • Writing the code is the cheap part now. An AI pair-programmer can scaffold a bell, a feed, and a basic socket server fast. Owning them is the expense.
  • Build only in a narrow case: notifications are your core product, your UX is too custom for any component, or data-residency rules force you to own the stack.
  • The real question isn't whether you can build it. It's whether you want to devote your team's attention to it, maintain it forever, and pay to run it.
  • Courier adds cross-channel orchestration on top of the inbox: one send reaches in-app, email, push, SMS, and chat, with shared preferences and failover.
  • Novu, MagicBell, Liveblocks, and OneSignal each fit a narrower slice: open-source and self-hosted, a standalone inbox, React real-time, or push at scale.

What building it actually costs

The code is the cheap part now. You can generate a bell, a badge, and a scrollable feed, even a basic WebSocket server, faster than ever. What you're really signing up for is owning all of it, and running it, for as long as your product exists:

  • A real-time backend to keep alive. A WebSocket service that streams new notifications and state changes to every open client, with reconnection, presence, and the toast that surfaces a notification the moment it arrives. Standing it up is a project; keeping it healthy is a job.
  • State you can trust. Per-user, per-notification read, unread, and archived state, plus an accurate unread count, kept consistent across a laptop and a phone at the same time.
  • Storage and pagination. A datastore that holds each user's history and serves it fast when the feed is thousands of items deep.
  • Preferences. Per-category and per-channel opt-in and opt-out, enforced everywhere a notification could go.
  • The operational tail. Scaling the socket layer, uptime, on-call, upgrades, and security patching, forever, plus the server bill under all of it.

None of it ships done. It's your team's attention, month after month, on infrastructure that isn't your product. And it competes for exactly the people you want on the core product: the engineers who can build reliable real-time systems. That opportunity cost, what you don't ship while you babysit a socket layer, is the number that matters.

Twilio uses Courier for notification orchestration rather than building it in-house. When a communications-infrastructure company with its own messaging APIs reaches for a platform instead of rolling its own, the complexity is real.

When building makes sense

Building is the right call in a narrow set of cases: notifications are your core product and the differentiation is worth owning, your UX is too custom for any prebuilt component, or data-residency rules require you to keep the whole stack in-house. Outside those, a component that ships today beats a build that pays off in a year.

Courier: an inbox plus orchestration

Most tools answer one question: how do I render an in-app feed? Courier answers the harder one: what happens to a notification when the user isn't in your app right now.

  • One send, every channel. The same notification lands in the inbox and can send a push, then fall back to email or SMS based on user preferences, from one API call.
  • Consistent on web and native mobile. SDKs for React, JavaScript, and web components, plus native iOS, Android, React Native, and Flutter, so the inbox is a real native view on a mobile app, not a web view.
  • Preferences and failover built in. 50+ provider integrations with automatic failover, and hosted preferences that apply across every channel, not only the feed.
  • Production reliability. Message queuing, automatic retries, 24/7 monitoring, and an enterprise uptime SLA, so you inherit the operational tail instead of staffing it.
  • Per-notification pricing. One notification that fans out to several channels is one charge, with a free tier of 10,000 a month.
  • Cross-channel state sync. Read it in email and the inbox marks read; dismiss the push and the inbox archives. Courier keeps one canonical state per notification and propagates it everywhere, no extra code. Chapter 2 covers the mechanics.

Visual workflow builder for multi-channel notification logic

Setup takes under an hour: install the SDK, sign in with a user ID and JWT, render the component. No WebSocket server, no schema, no state-management library.

How Courier compares

Courier is used by teams like Twilio, LaunchDarkly, and CircleCI.

PlatformStrongest forWatch out for
CourierDrop-in inbox plus cross-channel orchestration, widest native SDK coverageFocused on transactional and product notifications, not marketing automation
NovuOpen-source and self-hosted setupsSelf-hosting means you own scaling, uptime, and upgrades
MagicBellA dedicated, polished standalone inboxInbox-first; mobile support comes through React Native rather than native iOS and Android inbox SDKs
LiveblocksReal-time React apps using collaboration featuresReact only, with no native mobile component
OneSignalPush at scaleTransient in-app messages, with no persistent inbox

Developer-first tools (Courier, Novu, MagicBell, Liveblocks) win on drop-in UI and developer experience. OneSignal and the other engagement platforms put the inbox, or transient in-app messages, inside a broader campaign platform. The pick comes down to whether your bottleneck is shipping a feed or running cross-channel programs. For the full field, see our comparison of the best in-app notification centers.

Customer proof

DroneDeploy makes drone mapping software for construction and surveying. Map files take real time to process, so users needed a notification when a job finished rather than a progress bar to watch. A from-scratch build would have taken months. They integrated Courier in weeks.

DroneDeploy and Courier

"We used the great looking pre-built component to save even more time. Notifications are not our core competency, so it made complete sense to integrate rather than build out and support our own implementation."

James Pipe, VP of Product, DroneDeploy

LaunchDarkly runs a feature management platform and uses Courier Inbox for flag-approval workflows. A request reaches the reviewer with approve and reject buttons in the row, and the inbox keeps the audit trail.

LaunchDarkly and Courier

"We were able to build the in-app notification experience that we wanted with excellent support and communication from the Courier staff."

Lucy Wonsower, Software Engineer, LaunchDarkly

Getting started

The full setup is in chapter 2. The short version: sign up at app.courier.com, grab your client key and auth token, install the SDK for your platform, sign in with a user ID and JWT, and render the inbox component. Send yourself a notification from the dashboard to confirm real-time delivery, then move your notification logic into workflows as it grows.

The free tier includes 10,000 sends a month across every channel, enough to build, validate, and launch most apps. Start there and upgrade when volume grows.

Frequently asked questions

How much does it cost to build a notification center in-house?

The initial build is cheaper than it used to be, since AI tooling can scaffold the UI and a basic real-time server quickly. The lasting cost is ownership, not the first version: WebSocket infrastructure, cross-device sync, multi-platform SDK maintenance, security patching, and an on-call rotation, none of which ever ships done, plus the monthly server bill to run it. That's the spend teams underestimate, and it's engineering attention pulled off your core product. Courier's free tier covers 10,000 sends a month with no infrastructure to own, and paid plans scale with volume.

How long does it take to integrate Courier?

Most teams have a working notification center in one to three days. The SDK installs like any other package, authentication is a few lines, and the inbox component renders with sensible defaults. Getting from zero to a branded, functional in-app notification center usually takes under a week including customization and testing.

What is the difference between Courier and OneSignal?

OneSignal specializes in push notifications, with strong delivery optimization and detailed push analytics. Courier is built for multi-channel product notifications: in-app inbox, email, SMS, push, Slack, and Teams from one API. If push is your only channel, OneSignal is worth evaluating. If you need a notification center alongside other channels with cross-channel state sync, Courier handles the full stack, and its in-app notification center is more customizable than OneSignal's.

Does Courier support both web and mobile notification centers?

Yes. Courier provides SDKs for React and web components on the web, a native iOS SDK, a native Android SDK, Flutter, and React Native. They share the same API design, so the same backend code sends to every platform, and cross-device sync means a notification read in your web app also shows as read in your iOS or Android app.

What happens when you exceed Courier's free tier?

The free tier includes 10,000 sends a month across every channel: inbox, push, email, SMS, workflows, and analytics. Past 10,000 you move to a paid plan with no loss of functionality; pricing scales with volume. Courier's pricing page has current rates.

---