How to Add notifications to a React Native App (2026 Guide)
A practical guide to React Native notifications: ask the operating system, save the device with a public key, and send from a server API key.
What React Native notifications actually require
React Native notifications are two jobs that are easy to tangle. The app asks iOS or Android for permission and receives a device token. Something else has to store that token, choose who can receive, and deliver the message.
The operating system prompt still belongs to the app. Notifiable does not replace that prompt. It stores the subscriber, the permission, and the token, then sends when you say so.
Create the app and take the public key
In Notifiable, a React Native product is an app inside a workspace. Development and production each have a public key that starts with ntf_pub_. That key identifies the app and the environment. It can register a device. It cannot send a notification.
Before the app asks for a token, read the client configuration with that key. Android includes Firebase client options once the package name is prepared. iOS includes the bundle ID once Apple is connected for the workspace. Those options belong to the project Notifiable prepared. You do not create a Firebase project for the app.
Save the React Native device
After the app has a token, save the subscriber. The same device id updates the existing row, so a retry does not create a second subscriber. Use sdk set to react-native. Platform is ios or android. When permission is granted, include the provider and the token.
Android delivery is prepared by Notifiable from the package name. For iOS, connect Apple once for the workspace, then each app reuses that connection with its bundle ID.
await fetch('/api/v1/sdk/subscribers', {
method: 'POST',
headers: {
'X-Notifiable-Key': key,
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
device_id: deviceId,
platform: 'ios',
sdk: 'react-native',
permission: 'granted',
provider: 'apns',
token: pushToken,
}),
});
Send, or schedule, from one place
Compose the notification in the dashboard, or accept it with a server API key. The audience can be everyone, a segment, one subscriber, or everyone who recorded an event. Send it now, at a fixed UTC time, or when that time arrives in each subscriber’s timezone.
A public key still cannot send. The call that delivers is authenticated with the server API key.
POST /api/v1/public/apps/{app}/environments/development/notifications
Authorization: Bearer ntf_…
{
"title": "Your order shipped",
"body": "Your package is on the way.",
"audience_type": "all",
"intent": "send"
}
What you still own
You still write the permission prompt in the React Native app, keep a stable device id, and decide when a message is worth sending. Notifiable keeps the token, the permission, the audience, and the record of what was delivered, failed, or opened.
An open is stored the first time someone opens the notification. A click rate is not shown in this beta.
- Create the app and copy the public key for the environment you are testing.
- Ask for permission in the app, then save the subscriber with sdk set to react-native.
- Confirm the device appears, with the permission you sent.
- Send a test from the dashboard before you wire the server API key.
- Schedule only after a send-now notification has been delivered.
Where this lives in Notifiable
The same product is documented in the dashboard guides. Subscribers hold the device. Notifications are the send. The public beta is the current release.
Share with friends
Send this guide to someone building notifications.