Thomas Schiavone
August 19, 2025

We’re excited to announce a major new version of Courier Inbox for web.
We originally built Inbox over four years ago to solve a simple problem: how do you add a real-time notification center to your app without building everything from scratch? Like most early-stage products, the first version was focused on getting to market fast.
Turns out, Inbox became one of our most popular products. And with that popularity came a lot of feedback. Developers wanted more flexibility, cleaner integration, and better performance. We knew we had a lot we could improve on.
So we took a step back and rebuilt it from the ground up.
We didn’t just patch a few things. We built a new foundation for scale and flexibility.
Our goal was to reimagine Inbox as something developers could drop into any app in minutes and rely on as their product evolves. Are three key objectives were
You can use the default UI, but you’re not locked into it. Theme it, extend it, or replace it entirely with your own components.
Real-time delivery, cross-device sync, and efficient data loading should just work without extra effort or complexity.
Developers should be able to add a real-time inbox to any app with minimal setup. No need to wire up sockets, state, or syncing logic by hand.
We rebuilt every layer of Courier Inbox from the integration surface to the real-time delivery infrastructure. Here’s what’s new:

You can install and render Courier Inbox with just a few lines of code. Here’s a basic React setup using the new @trycourier/courier-react package:
Copied!
npm install @trycourier/courier-react
And here's how easy it is to get standard inbox up and running:
Copied!
import { useEffect } from 'react';import { CourierInbox, useCourier } from '@trycourier/courier-react';export default function App() {const courier = useCourier();useEffect(() => {// Generate a JWT for your user on your backend serverconst jwt = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';// Authenticate the user with the inboxcourier.shared.signIn({userId: $YOUR_USER_ID,jwt: jwt,});}, []);return <CourierInbox />;}
Courier handles authentication, sockets, and real-time syncing behind the scenes. You don’t have to worry about managing message state or delivery logic yourself.
The new version is a complete rebuild, but we’re not deprecating the old one. If you’re happy with your current integration, you don’t need to change anything. That said, if you’re ready for more flexibility, simpler integration, and better performance, upgrading is straightforward.
Here are a few important changes in this release:
The SDK is now a single package: @trycourier/courier-react
Authentication now requires JWTs (no more clientKey or HMAC)
Hooks have been updated — use useCourier() instead of useInbox()
Theming is handled via CourierInboxTheme, not styled-components
Custom components are passed using new render* props
The new Courier Inbox for web is ready to use today. Whether you’re starting from scratch or upgrading an existing integration, everything has been rebuilt to help you move faster with more control.
Choose the SDK that fits your stack:
📚 Using React? Start here:
🕹 Not using React? Use our web components:
🔄 Migrating from an older version?
Have questions or feedback? Just reach out. We’d love to hear from you
Courier Inbox isn’t just for web. We also offer native SDKs for iOS, Android, Flutter, and React Native. Each one is built with the same principles: real-time sync, flexible theming, and easy drop-in integration so your users stay in the loop across every platform.

Help Users Navigate In-App Notifications Faster with Tabs in Courier Inbox
As your product grows, notifications pile up fast—and a single “everything” list turns into noise. Tabs for Courier Inbox let you organize in-app notifications into focused views (like Comments, Mentions, or Reactions) so users can find what they need faster, without you building custom filtering UI.
By Mike Miller
January 08, 2026

Your Notifications Now Have Two Audiences: Humans and AI Agents
AI agents are now filtering, summarizing, and acting on notifications before users ever see them. In late 2024, Anthropic released the Model Context Protocol. By mid-2025, MCP had become the connective tissue for AI agents that take actions on behalf of users. Google followed with A2A. Agentic browsers like Perplexity Comet and Opera Neon started treating the web as something to navigate programmatically. Your notification strategy needs to account for machine interpretation, not just human attention.
By Kyle Seyler
January 05, 2026

How to Use WhatsApp Typing Indicators on Twilio (Public Beta Guide)
Twilio now supports typing indicators for WhatsApp. When your backend takes a few seconds to generate a response, you can show users that something's happening instead of leaving them staring at a silent chat. The indicator appears when you call the new /v2/Indicators/Typing endpoint, automatically marks the message as read, and disappears after your response arrives or 25 seconds pass. This guide covers the API details, implementation patterns for Node.js and Python, when to use typing indicators, and current beta limitations.
By Kyle Seyler
December 03, 2025
© 2026 Courier. All rights reserved.