10 Best Push Notification Services for React Native and Expo in 2026
Most push lists rank vendors as if the only question is which one sends the message. React Native adds a step before that. The build you ship decides which SDKs you can run, and whether Expo Go can test push at all. Start there, then pick a service.
This page covers 10 options as of October 2026: two delivery layers (Expo Push and React Native Firebase), a notification API (Knock), a display library (Notifee), and six marketing platforms, Sequenzy included. Package names, release dates, prices, plan limits and build requirements come from npm, GitHub and each vendor's own pages.
Disclosure: I build Sequenzy, which is one of the 10. Below, I say where it loses.
If you want the cross-platform view, start with the general push notification services guide. Flutter teams should read the Flutter guide. If you also need in-app screens, the in-app messaging tools roundup covers product tours and feeds.
Pick your build before you pick a vendor
Expo Go is the fastest way to run a React Native app, and its push limit catches most teams off guard. Expo's SDK 53 changelog says push notifications are no longer supported in Expo Go for Android, after being deprecated in SDK 52. Expo still supports push in Expo Go on iOS, because EAS can configure it for you. Expo's notifications reference says a development build is required to use push notifications, and its FAQ recommends testing remote push in development builds so behavior matches production.
That leaves three cases:
- Screens, navigation and local notifications: Expo Go is fine.
- Remote push on Android: use a development build on a physical device.
- Remote push on iOS: Expo Go still works, but test on a development build before you ship, because store builds need your own credentials.
Most SDKs below are native modules that Expo Go does not include. Braze, CleverTap and Customer.io need a prebuild or an expo run step, and OneSignal and React Native Firebase are native too. Plan for a development build from day one, not as a late fix.
If an AI app builder generated your Expo project, open app.json or app.config.js before you choose a service. Look for existing plugins, and check whether the project is set up for a development build or only for Expo Go.
Credentials in one pass
You need two sets of credentials, and both are one-time setup per app.
Android delivery runs through Firebase Cloud Messaging. Expo's setup guide says you configure FCM to get credentials, and it describes FCM V1 credentials for Android. Expo's FAQ says store builds need your own credentials.
iOS delivery runs through Apple Push Notification service. Expo's setup guide says a paid Apple Developer account is required to generate credentials. EAS can create the APNs key for you during your first push-enabled build, or you can run eas credentials yourself.
Tokens are the other trap. An Expo push token only works with Expo's push service. Native APNs and FCM tokens work with any service that accepts them, and Expo's FAQ says you can get the native token with getDevicePushTokenAsync and send through another service. Decide early which sender you use, because the token type follows that choice.
Quick comparison
"Expo Go" means whether remote push works there. "Not published" means the vendor only quotes a price.
| Option | Job | Remote push in Expo Go | Free tier |
|---|---|---|---|
| Expo Push Notifications | Delivery API | No on Android from SDK 53, yes on iOS | Free to send, 600 per second per project |
| React Native Firebase Messaging | Delivery client | No, native module | Client free, FCM no fee listed |
| Knock | Notification API | Depends on expo-notifications | Developer plan, 10,000 messages a month |
| Notifee | Display library | No, native module | None, archived |
| OneSignal | Marketing push | No, native module | Mobile push up to 1,000 MAU |
| Braze | Marketing push, enterprise | No, Expo plugin needs prebuild | No free plan, free trial |
| CleverTap | Marketing push | No, Expo plugin needs prebuild | No free plan, 30-day Core trial |
| Customer.io | Lifecycle | No, run with expo run | No free plan, trial, startup program |
| Airship | Marketing push, enterprise | No, native module | Quote based, no free tier listed |
| Sequenzy | Lifecycle with push | SDK runs in Expo Go, Android push needs a development build | Push unlimited on every plan |
How to choose
- Expo app, engineers send, no marketer on the team: Expo Push Notifications. Add a marketing tool when someone non-technical needs to send.
- Already on Firebase, want the native client: React Native Firebase Messaging, and budget for a development build.
- Product engineers want one notification API across channels: Knock. Confirm the channels you need before you commit.
- A marketer must send a campaign this month on a small budget: OneSignal.
- Email and push should share sequences: Sequenzy, or Customer.io if email already lives there.
- Enterprise lifecycle program with budget for quotes: Braze, CleverTap, Customer.io or Airship. Get the quote, and get the Expo support answer in writing.
Delivery and SDK layers
1. Expo Push Notifications
Best for: Expo apps that want one server API for iOS and Android, with no marketing console.
Build and Expo fit: Install expo-notifications and add its config plugin to your app config. Expo's notifications reference says remote push needs a development build, and Expo Go on Android has not supported remote push since SDK 53. Expo's FAQ says the store builds you ship need your own credentials. Expo's push overview covers iOS through APNs and Android through FCM.
Pricing: Free to send. Expo's FAQ says there is "no cost associated with sending notifications through Expo push notification service." The limit is 600 notifications per second per project. Expo recommends throttling and retry logic on your server to stay under it.
Strengths: One call covers both platforms, there is no vendor contract, and you can switch to native tokens later if you outgrow it.
Where it falls short: Expo is a send relay. It has no segments, journeys, campaign analytics or A/B tests. Its delivery is designed for at-least-once, so your app should handle a notification that arrives twice.
Verdict: The right delivery layer for an Expo app. Add a marketing tool when a non-engineer needs to send.
2. React Native Firebase Messaging
Best for: Teams that already run Firebase and want the native messaging module in their React Native code.
Build and Expo fit: @react-native-firebase/messaging is a native module. Its usage docs say it requires the New Architecture from version 26 onward. The package sits on @react-native-firebase/app, which was at 27.0.0 on npm on 19 October 2026 under the Apache-2.0 license. With Expo you add the plugin to app config and build natively, so Expo Go is out.
Pricing: The library is open source and free. Firebase's pricing page lists Cloud Messaging as "No-cost," with no per-message charge or quota on the page.
Strengths: You get the native token directly, getToken on Android and getAPNSToken on iOS. You can send through FCM and APNs from your own backend, and several vendors on this list accept those tokens.
Where it falls short: It is a client library and a send path, not a marketing layer. You build audiences, schedules and reporting, or buy them from a tool on top. Expect a Firebase project even if most of your users are on iPhones, because the module is built on the Firebase app package.
Verdict: The right choice when you want the native Firebase client. For Expo teams that only need delivery, Expo Push is less setup.
3. Knock
Best for: Product engineering teams that want one notification API for push, email, SMS and in-app messages, with the routing logic in code.
Build and Expo fit: @knocklabs/react-native was at 0.11.3 on npm on 8 October 2026. It covers the non-Expo path, with a push provider component for registering device tokens to Knock channels. For Expo, the @knocklabs/expo package adds a provider and hooks that register Expo push tokens. Push still depends on expo-notifications, so you need a development build for remote push.
Pricing: Knock bills each message delivered to each recipient on each channel. Workflow runs are not billed. The Developer plan is free for up to 10,000 messages and 500 guide users a month. Starter is $250 a month for 50,000 messages, with $0.005 per extra message. A trigger that sends an in-app message and an email counts as two messages.
Strengths: Routing, preferences and feeds live in one place, and the billing unit is clear per message.
Where it falls short: It is built for engineers. A marketer cannot build a campaign calendar or a multi-week sequence the way they can in a marketing tool. Check the provider list for the channels you need in a trial before you commit.
Verdict: A sound notification API when engineers own the logic. Compare it on the Knock alternatives page or the Knock comparison before you sign.
4. Notifee (archived)
Best for: Nothing new. Existing apps that already use it can plan a migration.
Status: Notifee's GitHub repository was archived by its owner on April 7, 2026, and is now read-only. The README says the project is "no longer actively maintained" and recommends expo-notifications for a supported experience in the React Native ecosystem.
Replacement: The README names react-native-notify-kit as a community-maintained drop-in replacement. It was at version 10.9.0 on npm on 17 October 2026 and describes itself as a maintained Notifee-compatible library for Android, iOS, FCM mode and Expo development builds.
Where it falls short: Notifee shows notifications on the device. It does not send them, so you still need FCM, APNs or a service behind it.
Verdict: Do not start new code on it. Use expo-notifications in Expo, or the fork if you need the Notifee API.
Marketing and lifecycle push
5. OneSignal
Best for: Apps and websites that want a self-serve push console, in-app messages and Live Activities without an enterprise contract.
Build and Expo fit: react-native-onesignal was at 5.5.15 on npm on 13 October 2026. OneSignal's setup docs require React Native 0.79 or later with the New Architecture enabled. On Android you connect OneSignal to your Firebase credentials. On iOS you use a p8 APNs key, which OneSignal recommends, or a p12 certificate. For rich images on iOS you add a Notification Service Extension, which the docs say enables rich notifications and confirmed receipt analytics.
Pricing: The Free plan covers mobile push for up to 1,000 monthly active users. Web push is capped at 10,000 subscribers per send, with 6 segments and 3 active journeys. Growth starts at $19 a month, with $0.012 per mobile MAU and $0.004 per web push subscriber. In-app messaging and Live Activities share the same 1,000 MAU limit on Free. Professional and Enterprise are custom annual contracts.
Strengths: The fastest self-serve start on this list, with in-app and Live Activities included.
Where it falls short: Reporting history is 30 days on Free. Segment and journey caps step up by tier, so a serious program will move to an annual plan. The New Architecture requirement means older React Native apps need an upgrade first.
Verdict: The easiest honest start for an Expo or bare React Native team that needs a campaign console. Compare it on the OneSignal alternatives page and the OneSignal pricing page before you renew.
6. Braze
Best for: Large brands with a lifecycle team and a budget for an enterprise contract.
Build and Expo fit: @braze/react-native-sdk was at 23.1.0 on npm on 22 September 2026. Braze's Expo plugin goes in app config, and you run a prebuild, so Expo Go is out. Braze's SDK guide says version 6.0.0 and later uses a Turbo Module that works on both the New and legacy architectures. Expo's own guide says SDK 55 and later run only on the New Architecture.
Pricing: Braze says it "does not offer a free plan at this time." It offers a free trial and startup programs. Pricing is sales-led and scales with monthly active users and profiles, plus a pooled set of Action Credits for messaging channels. Its four Platform Editions have no published prices.
Strengths: Deep journeys, strong native coverage, and Live Activities documented for the Swift SDK, including push-to-start from a server.
Where it falls short: No free plan, and the price is per contract. A small team will find the floor high, and the pooled credits make the final bill harder to predict.
Verdict: An enterprise choice with strong native depth. For the category view, see the customer engagement platforms roundup. Compare with the Braze comparison and Braze pricing pages.
7. CleverTap
Best for: Consumer apps and marketplaces that want push, in-app and web messaging in one platform, with a trial before the sales call.
Build and Expo fit: clevertap-react-native was at 4.4.0 on npm on 9 October 2026. CleverTap's Expo plugin, @clevertap/clevertap-expo-plugin, takes your account ID, token and region in app config, then runs npx expo prebuild --clean. The plugin is still a 0.0.x release on npm, so pin the version and retest after each Expo upgrade.
Pricing: No permanent free plan. Core has a 30-day free trial, and billing starts after it ends. Core is listed at $85 a month before taxes and add-ons. The page appears to tie that price to up to 5,000 monthly active users, so confirm the tier in writing. Pro and Ultimate have no public prices and require a demo. Billing is by monthly active users or data points, depending on your deal.
Strengths: A real trial before a sales call, push and in-app in one place, and an Expo plugin for the native setup.
Where it falls short: Above Core, you are pricing from a demo. Add-ons and token pools make the final bill hard to predict.
Verdict: A good consumer-app choice with a clear trial. See the CleverTap comparison before you commit.
8. Customer.io
Best for: Teams already sending email from Customer.io that want push and in-app messages on the same profiles.
Build and Expo fit: customerio-reactnative was at 6.13.1 on npm on 30 September 2026. Its Expo plugin, customerio-expo-plugin, is configured in app config, and the Expo guide says to run npx expo run:ios or npx expo run:android rather than the dev server, because the plugin generates native files. For iOS you set the push provider to apn for APNs or fcm for Firebase. If you also use React Native Firebase, the Customer.io docs say to leave the iOS Google services file out of the plugin config.
Pricing: No free plan. There is a trial, and a Startup Program that gives companies that raised under $10 million a full year free. Essentials starts at $100 a month billed monthly, with 5,000 profiles included and $0.009 for each extra profile. Premium starts at $1,000 a month billed yearly. Enterprise is "Let's talk." Email sends beyond plan limits cost $0.12 per additional 1,000.
Strengths: One profile for email, push and in-app. The plugin handles push delivered and opened metrics for messages sent from Customer.io.
Where it falls short: No free plan, and the profile-based billing grows with your whole contact base, not just push users.
Verdict: Best when email is already on Customer.io. Check the Customer.io comparison, Customer.io pricing and Customer.io alternatives pages before a renewal.
9. Airship
Best for: Mobile-first enterprises that want one platform across app, web and messages, and are ready for a sales-led contract.
Build and Expo fit: @ua/react-native-airship was at 27.0.0 on npm on 22 September 2026. Its npm listing requires React Native 0.85 or later, so an older app needs an upgrade first. Airship's docs describe Live Activities on iOS and Live Updates on Android. Plan on a development build, and ask Airship about Expo config plugin support before you pick it for an Expo project.
Pricing: Quote based. Airship's pricing page lists no dollar amounts, no free tier and no billing unit. Its Essentials plan offers self-serve signup, but the page shows no price for it.
Strengths: Enterprise-grade platform coverage, including Live Activities and Live Updates for real-time content on both platforms.
Where it falls short: You cannot estimate the cost from public pages, so a small team cannot budget it without a sales conversation. Expo support needs a conversation with Airship.
Verdict: Shortlist it if you already run a sales process and want one platform for app, web and messages. Get a written quote that names the MAU count and channels.
10. Sequenzy
Best for: SaaS teams, apps and online stores that want push, in-app messages, email and SMS in one sequence builder at a low cost.
Build and Expo fit: The React Native SDK is plain TypeScript and runs in Expo Go, with no custom native build. It identifies contacts, tracks events and screen views, registers push tokens, and shows in-app messages and content cards. In-app messages are React Native components, and you render a host next to your navigation. The push token comes from expo-notifications or React Native Firebase, and it must be the native APNs or FCM token, not Expo's push token. On Android, the Expo Go limit means you need a development build to receive remote push, so use Expo Go for the SDK calls and in-app screens, and test push on a development build.
Pricing: The free plan includes 2,500 emails a month. Push and in-app messages are unlimited on every plan, including Free, and do not use email credits. Paid plans start at $19 a month for 15,000 emails.
Strengths: Push steps sit in the same sequence builder as email, and segments can filter on push devices and push activity. Push supports images, deep links and platform targeting, and push steps report sent, displayed and clicked. Live Activities on iOS can be started, updated and ended from your backend through the API, CLI or MCP server. React Native apps pass the tokens from a small Swift module.
Where it falls short: No WhatsApp, product tours or two-way SMS inbox. The ecosystem is smaller than Braze or Iterable, and there is no enterprise experimentation suite. Live Activities are iOS only, and Android has no equivalent. A React Native team writes the Swift widget and token bridge itself.
Verdict: Right for a small team that wants push as one more step in the email sequences it already sends. Wrong if you need an enterprise experimentation suite, a campaign console for Android Live Updates, or a tool that can run push without a development build on Android.
Frequently asked questions
What is the best push notification service for React Native?
For delivery alone in an Expo app, Expo Push Notifications, since it needs no vendor contract. For the native Firebase client, React Native Firebase Messaging. For marketing push with campaigns and segments and a free start, OneSignal. For enterprise journeys with a sales team, shortlist Braze, CleverTap, Customer.io or Airship. If push should be one more step in your email sequences, Sequenzy fits. I build it, so weigh that.
Can I use Expo push notifications in production?
Yes, with limits you plan for. Store builds need your own FCM and APNs credentials, Expo's service caps sending at 600 notifications per second per project, and it has no segments, journeys or campaign analytics. You own retries and throttling, and you should design for duplicates because Expo's delivery is at least once. Test on a development build, not Expo Go.
Do I need Firebase for React Native push notifications on iOS?
No. iPhones receive push through Apple's APNs, and Expo Push, OneSignal, Braze and Sequenzy all reach iOS that way. Firebase Cloud Messaging is the Android path. If you choose React Native Firebase as your client, you add a Firebase project, but that is a library choice, not an iOS requirement.
Does it work in Expo Go?
Partly. Since SDK 53, Expo Go no longer supports remote push on Android. Expo still supports remote push in Expo Go on iOS. Expo's notifications docs say a development build is required to use push notifications, so test on one. Most native SDKs on this list need a prebuild or development build anyway. Sequenzy's SDK is plain TypeScript and runs in Expo Go, but its push token still comes from expo-notifications or React Native Firebase.
Is Notifee still a good choice?
Not for new code. Notifee's GitHub repository was archived on April 7, 2026, and its README says it is no longer actively maintained. Use expo-notifications in Expo, or the community fork react-native-notify-kit if you need the Notifee API.