Expo notifications explained for React Native teams.
This guide breaks down how Expo notifications work, what Expo push tokens are, and how pushes travel through the Expo service to FCM and APNs. If you are evaluating tooling, start here.
Delivery flow
- App requests permissions and obtains a push token.
- Token is stored on your backend or a service like PushWave.
- Push payload is sent to the Expo push service.
- Expo forwards to FCM/APNs for device delivery.
Expo Go is limited once native code is required. Production apps should use EAS builds or Dev Client.
Expo push token
A token tied to a device and app install. It can rotate and should not be used as a user ID.
Expo push service
The relay that accepts your message and delivers it to FCM/APNs at scale.
Attestation context
Security signals like Play Integrity or DeviceCheck can help filter bad tokens.
Common Expo notification pitfalls
- Treating push tokens as stable user IDs.
- Skipping token cleanup when installs are removed.
- Sending too many messages without rate limiting or batching.
- Not handling permissions or notification channels properly.
Where PushWave fits
PushWave handles the server-side pieces you would normally build: token storage, targeting, scheduling, and delivery visibility. It stays compatible with Expo notifications and the Expo push service.
FAQ
Is Expo notifications the same as push notifications?
Expo notifications is the client library and service that sits between your app and FCM/APNs. It helps obtain tokens and deliver pushes.
What is an Expo push token?
An Expo push token identifies a device and app installation. It is not a user ID and can change over time.
Does Expo Go support push notifications?
Expo Go has limitations once native code is required. Use EAS builds or Dev Client for production setups.
Do I need my own backend for Expo notifications?
You can build one, but it requires token storage, batching, retries, and scheduling. PushWave removes that backend work.
How does PushWave fit into the Expo pipeline?
PushWave stores tokens, validates attestation when enabled, and sends through the Expo push service with targeting and scheduling.