Push notifications that actually land. Priced per device, not per active user.
Ubriot Notify delivers to iOS and Android: direct APNs and FCM delivery, auto-retry, campaigns, and logs. Set up in minutes.
The per-MAU pricing problem
Per-MAU pricing
100,000 monthly active users
~$1,200/mo
Push only, at roughly $0.012 per MAU
Ubriot
100,000 registered devices
$99/mo
Pro plan, the whole platform, push included
Illustrative comparison only. Per-MAU services charge for every user who opened your app this month - whether they're push subscribers or not. Ubriot Notify charges only for registered devices.
What you get
Everything push. Nothing you don't need.
React Native & Expo native
One SDK, one line. Works in Expo managed, bare, and plain React Native, with no manual APNs or FCM setup.
Direct APNs + FCM delivery
Notifications go directly from Ubriot Notify to Apple and Google. No relay server in the middle, no additional hop, no third-party reading your payloads.
Per-device, not per-MAU
You pay for registered devices, not for every user who opened the app this month.
Delivery logs and auto-retry
Every send is logged with status, error reason, and provider ID. Failed deliveries retry automatically with exponential backoff, up to five attempts.
Campaigns from the dashboard
Broadcast to all your users or filter by platform. Write the notification, pick the audience, send, no engineering ticket required.
User identification
Link device tokens to your own user IDs. Send to a user across all their devices with one call, even when they switch phones.
Integration
Set up in four steps
First notification in under ten minutes.
Step 1
Create an app and get your API key
Sign in, create a Notify app in the dashboard, and copy your API key and app ID. Takes thirty seconds.
Step 2
Install the React Native SDK
One package. Works with Expo managed workflow, Expo bare, and plain React Native. No Xcode changes needed for APNs.
npm install @ubriot/notify-rnStep 3
Register devices in your app
Call register once at app launch. Ubriot handles APNs and FCM token retrieval, hashes them, and returns a stable opaque token.
import { UbriotNotify } from '@ubriot/notify-rn';
// nativeToken comes from expo-notifications, firebase, or any push library
useEffect(() => {
UbriotNotify.register({
appId: 'your-app-id',
nativeToken, // APNs or FCM token
platform: 'ios', // or 'android'
userId: currentUser?.id, // optional
});
}, []);Step 4
Send from your backend
POST to the send endpoint with your server key. Or use the dashboard to broadcast to everyone at once.
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": "New message",
"body": "You have a reply"
}'Pricing
Push is included in every plan.
Push comes with the whole Ubriot platform (builds, store submission, OTA) on one flat plan. Upgrade a tier when your device count grows, not when your app gets popular.
Indie
For one developer shipping real apps.
Push to 10,000 devices
- Unlimited sends
- APNs + FCM delivery
- Delivery logs
- REST API
Pro
For live apps that ship regularly.
Push to 100,000 devices
- Unlimited sends
- Campaigns + segments
- User identification
- Auto-retry
- Webhook events
Business
For engineering teams with multiple apps.
Push to 500,000 devices
- Unlimited sends
- 1-year delivery logs
- Everything in Pro
- Priority support
All prices in USD. Each tier includes a registered-device cap; upgrade a tier as you grow. No contracts.
Start sending in minutes
Every account starts with a 14-day free trial (up to 10,000 devices, unlimited sends). One platform, push included, from $29/mo after.