DEV Community

Cover image for Push notifications for React Native and the web, priced per device instead of per message
Espresso Notify
Espresso Notify

Posted on Edited on AI-assisted

Push notifications for React Native and the web, priced per device instead of per message

Most push notification services charge by the message or by the monthly active user, and both grow faster than your app. We built Espresso Notify around a simpler unit: the active device. A device counts when it used your app in the last 30 days; send it one push or fifty, the price is the same. The first 10,000 devices are free.

What you get

  • One dashboard to write a campaign once and send it to iOS, Android and browsers together.
  • Audiences: segments by properties and behavior, plus test devices.
  • Delivery you can trust: every send shows delivered, opened and failed per device, with the failure reason (for example a token the device no longer uses).
  • A REST API for transactional pushes, with idempotency keys so a retry never sends twice.
  • Guardrails: quiet hours and frequency capping.
  • Journeys and A/B tests for the campaigns that need more than one message.

Setting up a React Native app

The React Native SDK ships on npm as @espresso-notify/react-native. One command sets it up in Expo apps and in React Native CLI apps:

npx @espresso-notify/react-native@latest setup
Enter fullscreen mode Exit fullscreen mode

The wizard reads your package.json. In an Expo project (Expo SDK 53 or newer) it installs the packages that match your Expo SDK and adds the config plugin. In a React Native CLI project (React Native 0.79 or newer) it installs the Firebase and notification packages, adds the lines your Podfile, Gradle files and AppDelegate need, and lists what is left for you, such as your Firebase files.

From there the quickstarts walk through registering the device, identifying the user and sending a first push from the dashboard: https://docs.espressonotify.com/docs/react-native/expo for Expo and https://docs.espressonotify.com/docs/react-native/bare for React Native CLI. Web push has its own guide in the same docs.

Why per device

Per-message pricing punishes the apps that talk to their users the most, and MAU pricing counts people who never get a notification. Counting active devices matches what actually costs money to run, and it is easy to predict: you know how many devices installed your app last month.

Try it free at https://espressonotify.com. We would love to hear what is hard about push for your team today.

Top comments (0)