React Native push notificationsthat actually deliver.
Ubriot Notify sends iOS and Android push notifications directly to APNs and FCM. Per-device pricing, no relay server, auto-retry, dead token cleanup, and delivery logs for every send. Set up in minutes with the React Native SDK.
Pricing comparison
Per-device, not per monthly active user.
Many per-MAU providers bill for monthly active users — not just push subscribers. For growing apps, that can mean a large gap versus per-device pricing. Illustrative example only; confirm current rates with any vendor you evaluate.
Per-MAU pricing
100,000 MAU
$1,219/mo
Illustrative MAU-priced example
Ubriot Notify
100,000 registered devices
$79/mo
Growth plan — unlimited sends
Integration
Send your first push in under ten minutes.
Register the device
After push permission, pass the native APNs or FCM token to register(). You get back a stable opaque UbriotPushToken for sending from your backend.
import { UbriotNotify } from '@ubriot/notify-rn';
// nativeToken from expo-notifications, Firebase, etc.
await UbriotNotify.register({
appId: 'your-app-id',
nativeToken,
platform: 'ios', // or 'android'
userId: currentUser?.id,
});Send from your backend
POST to the send endpoint with the opaque token. Ubriot resolves it to the underlying APNs or FCM token and delivers immediately — or retries with exponential backoff if the device is temporarily unreachable.
curl -X POST https://api.ubriot.dev/api/v1/ubriot/push/send \
-H "X-Ubriot-Push-Key: your-server-key" \
-H "Content-Type: application/json" \
-d '{
"to": ["UbriotPushToken[...]"],
"title": "You have a new message",
"body": "Alice replied to your post"
}'Monitor delivery in the dashboard
Every send is logged with status, error reason, provider ID, and retry count. Failed sends retry automatically up to five times over 50 hours. Dead tokens (uninstalled apps) are pruned automatically so your device count stays accurate.
How Ubriot Notify compares
| Feature | Ubriot Notify | Typical per-MAU push SaaS (illustrative) |
|---|---|---|
| iOS delivery | Direct APNs | Often via vendor relay |
| Android delivery | Direct FCM | Often via vendor relay |
| Pricing model | Per registered device | Often per monthly active user |
| Illustrative 100K devices / MAU cost | $79/mo (Growth — check pricing) | Often $1,000+/mo for high MAU tiers (varies) |
| Payload handling | Not stored after delivery | Vendor-dependent |
| React Native SDK | Yes — @ubriot/notify-rn | Yes (third-party) |
| Auto-retry on failure | Yes — 5 attempts, backoff | Varies by vendor |
| Dead token cleanup | Automatic | Varies by vendor |
| Self-hostable | Yes (Enterprise) | Rare |
Comparison is for positioning only — not a benchmark of a specific competing product. Features, privacy practices, and pricing change frequently; verify on each vendor's site before you buy.
Why teams switch to Ubriot Notify
Direct delivery
No relay server. APNs and FCM tokens resolved and sent in one hop.
Predictable cost
Per-device pricing means your bill reflects your audience size, not your activity.
Auto-retry
5 retry attempts with exponential backoff over 50 hours. Delivery logs for every attempt.
Privacy first
Payloads are not stored after delivery. Dead tokens pruned automatically.
Questions about React Native push notifications
- Does Ubriot Notify work with Expo managed workflow?
- Yes. The @ubriot/notify-rn SDK uses expo-notifications to retrieve the native APNs and FCM device token. It works in both managed and bare workflow without any Xcode or Android Studio changes.
- Do I still need to configure APNs and FCM separately?
- You upload your APNs auth key (.p8) and Firebase service account JSON once in the Ubriot dashboard. The SDK on the device side handles the rest automatically.
- What happens when a user uninstalls the app?
- APNs returns a BadDeviceToken or Unregistered error on the next delivery attempt. Ubriot automatically deletes the device record so it doesn't count toward your device limit or receive future sends.
- Can I send to specific users across multiple devices?
- Yes. Call UbriotNotify.identifyUser() with your internal user ID after login. Ubriot links all of that user's devices, so a single API call to send to that user ID reaches all of them.
- Is there a free tier?
- Yes. The free plan covers 2,500 registered devices with unlimited sends, full APNs and FCM delivery, and REST API access. No credit card required.
Start sending push notifications today.
Free tier covers 2,500 devices and unlimited sends. No credit card required.