Expo Push vs Firebase: I Switched After 10,000 Notifications Failed

Expo Push works until it doesn't. Here's the scale limit I hit and which one my 4 shipped apps use now.

Compare/Expo Push vs Firebase: I Switched After 10,000 Notifications Failed

Comparison

Expo Push vs Firebase: I Switched After 10,000 Notifications Failed

Expo Push worked fine until 10,000 notifications. Here's why I switched to FCM and what my 4 shipped apps use now.

Short answer: Expo Push

Short answer

For most apps, ship with Expo Push. Switch to FCM (and APNs direct) when you are sending millions of pushes a day or you need advanced targeting Expo does not expose.

I shipped 4 apps in a month with Expo Push. I have also shipped a higher-volume product on raw FCM + APNs. Here is the honest trade.

Expo Push: what you get

  • One token format that works for both iOS and Android.
  • A single send endpoint: https://exp.host/--/api/v2/push/send.
  • Receipt API so expired tokens get cleaned up.
  • No APNs cert management. No FCM server key paste.
  • Free for reasonable volumes.

Setup time for a first app: under 30 minutes. Real.

FCM direct: what you get

  • Topic and condition targeting (subscribe a group of users to a topic, send to all of them).
  • Advanced scheduling windows and platform-specific payloads.
  • Higher throughput. Google does not throttle you the way Expo does at massive scale.
  • Analytics via Firebase.

Setup time for a first app: 2–4 hours, plus the APNs cert setup for iOS.

What actually differs in practice

  • Simple use case (send a push to a user): Both work. Expo is faster to ship.
  • Broadcast to 100k users: FCM has the edge. Expo can do it but rate-limits more aggressively.
  • Per-platform payload: FCM gives you more control. Expo covers the common cases.
  • iOS reliability: Identical β€” both route to APNs in the end. If your iOS pushes are not delivering, the issue is your APNs cert or your opt-in rate, not the layer on top.

Where Expo Push annoys me

  • Legacy/critical alerts require direct APNs. Not an Expo limitation β€” Apple limitation β€” but you cannot do it via Expo.
  • Analytics are thin. You get receipts but not engagement tracking out of the box. I add PostHog events for open/interact.

Where FCM annoys me

  • Managing APNs certs (auth key is less painful but still a setup step).
  • The native Android setup + google-services.json dance.
  • Two SDKs to keep in sync across RN upgrades.

My default

Expo Push for everything up to roughly 100k daily active users. Switch to FCM direct only when I hit a reason β€” topic targeting, high-volume marketing, critical alerts.

What Shippen ships

Expo Push by default, with a clear swap path to FCM. The backend sender is an interface, not a hardcoded call. You swap the implementation without touching the rest of the app.

See pricing

Frequently asked questions

Is Expo Push free?+

Yes, fully free. Expo runs the push service for you. No per-notification billing, no separate project setup, no Firebase dashboard. You send to an Expo push token and it delivers to iOS APNs and Android FCM under the hood.

When does Expo Push break down?+

Two scenarios. (1) High volume: beyond roughly 10K notifications in quick succession the Expo service rate-limits and retries become expensive. (2) Advanced features: if you need FCM-specific topic subscriptions, Firebase Analytics integration, or custom notification channels, you need the Firebase SDK directly.

Can I use both?+

Yes. Start with Expo Push on day one (10 minutes of setup), migrate the Android path to Firebase Cloud Messaging only when you actually hit scale. The Expo SDK has adapters so the migration is a surface-level change, not a rewrite.

Does Expo Push require Firebase?+

No on iOS (uses APNs directly). Yes on Android (Firebase Cloud Messaging is Google's required delivery layer), but Expo handles the FCM project for you out of the box β€” you do not need your own Firebase project until you decide to switch to direct FCM.

More comparisons

Skip the debate. Ship the app.

Shippen gives you a proven stack. React Native + NestJS + Supabase + 17 AI agents. One-time purchase.

Shippenβ€ΊCompareβ€ΊExpo Push vs Firebase: I Switched After 10,000 Notifications Failed