Originally published on the QueueFly blog — cross-posted with the canonical URL set, so the original stays the canonical source.
Every app team eventually has the same conversation. Push notifications "work" — until a campaign misses its window, a token-cleanup cron job dies silently, or fan-out to a million devices hits a gateway throttle at the worst possible moment. At that point you're hand-rolling queues, retries, and dead-letter handling on top of Firebase Cloud Messaging, and you're building notification infrastructure whether you meant to or not.
I've been on both sides of that conversation — building the surrounding machinery at work, and now building it once, properly, as QueueFly. So when it comes to comparing push services, I tried to write the guide I wish someone had handed me the first time: seven realistic options for shipping push in 2026, judged on the things developers actually feel at 2 a.m. — API ergonomics, delivery reliability at scale, scheduling, token management, and pricing structure.
Quick picks:
- Best for raw, free delivery: Firebase Cloud Messaging (with your own infrastructure around it)
- Best developer-first managed queue on top of FCM: QueueFly
- Best all-in-one marketing engagement suite: OneSignal
- Best for multi-channel notification orchestration: Courier
- Best for product teams with complex prioritization: Knock
- Best for teams already on Pusher's realtime stack: Pusher Beams
- Best self-hosted/open-source option: ntfy
Comparison table
| Service | Model | You manage | Kill feature | Pricing shape |
|---|---|---|---|---|
| FCM (raw) | Free platform API | Queues, retries, tokens, scheduling, analytics | It's the industry default transport | Free |
| QueueFly | Managed infra wrapping FCM | Nothing beyond your Firebase project | Dead-letter queues + auto token rotation | Flat tiers from €44/mo, unlimited sends on every plan; 30-day trial |
| OneSignal | Engagement platform | Nothing; SDK adoption | Segmentation + Journeys marketing automation | Free ≤1,000 mobile MAU; Growth from $19/mo + $0.012/MAU |
| Courier | Orchestration layer | Nothing; defines channels in code | Notification templates + provider-routing in code | Free 10k sends/mo; then $0.005 per send |
| Knock | Product notification infra | Nothing | Workflow engine + prioritization/dedup | Free 10k msgs; Starter $250/mo (50k msgs, $0.005 overage) |
| Pusher Beams | Managed FCM/APNs layer | Nothing | Integrates with Pusher Pub/Sub | Free 1k subscribers; tiers $29–$399/mo |
| ntfy | Self-hosted pub/sub push | Your own servers | Open source, simple HTTP publish | Free (OSS) |
All competitor pricing checked against the vendors' official pricing pages on October 17, 2026 — see each section for specifics. Prices change; treat this as a starting point, not a quote.
1. Firebase Cloud Messaging — the transport everyone builds on
FCM is Google's free messaging transport for Android, iOS, and web. Nearly every service on this list is a layer on top of it (or APNs, or both), which is why "FCM vs X" comparisons are mostly questions about what wraps it.
What's great: genuinely free at scale, industry-proven delivery, first-party SDKs, topic messaging built in.
What you own anyway: retry logic and backoff, invalid-token cleanup (the UNREGISTERED error graveyard), scheduled and timezone-aware sends, fan-out throttling, dead-letter handling for persistently failed messages, delivery observability, and multi-tenant isolation if you serve several apps. That's a weekend project that never ends.
Choose it when: push is decorative in your product, volume is low, and you have spare engineering cycles to build the surrounding machinery.
2. QueueFly — productionized FCM without the platform lock-in
QueueFly — my product, so read on with that filter applied — takes the "bring your own Firebase" model seriously: you keep your own FCM credentials, and QueueFly runs the infrastructure layer around it: auto-scaling queues, one-time and cron-style scheduled sends with timezone awareness, automatic device-token registration and rotation, exponential-backoff retries, asynchronous delivery-status queries per notification (batchable, up to 2,000 ids), an invalid-device-token webhook, and a dead-letter queue that parks persistently failed sends instead of dropping them — with a zero-retention design on top: message body and subject are nulled once processed, so the delivery record survives and the content doesn't.
API shape: plain REST/JSON with three auth headers (ClientId, TenantId, ApiKey); device tokens auto-register on first push, so there's no pre-registration ceremony. TypeScript, Python, and cURL examples are in the docs, and there's a machine-readable Markdown reference that plays well with AI-assisted coding workflows. Multi-tenancy is first-class — one account can isolate many apps.
Limitations to know: it is deliberately FCM-based, so if you need native APNs-direct or SMS/voice channels, that's out of scope — you'd pair it with something else. It's also a young product built by one person rather than a funded team; the pitch is infrastructure focus, not a marketing-feature treadmill.
Pricing: 30-day free trial, all features, no card; paid from €44/month. Every plan — the trial included — has unlimited notification sends: you pay for registered devices (Premium up to 50k, Pro up to 250k, Enterprise unlimited), not per message. If your traffic is spiky (flash sales, release-day fan-out), that's the difference between a predictable invoice and a metered surprise — compare Courier and Knock below, which both charge per message on the way up.
Choose it when: you've decided FCM is your transport and you want the queues, retries, scheduling, and token hygiene handled — without handing your engagement data to a marketing platform.
3. OneSignal — the marketing-suite default
OneSignal started as browser push and grew into a full engagement platform: push, in-app, email, SMS, segmentation, Journeys automation, A/B testing.
What's great: polished no-code campaign tooling marketers love, battle-tested SDKs, strong deliverability reputation. The free plan ($0) covers mobile push up to 1,000 monthly active users, web push to 10,000 subscribers per send, and 10,000 email sends/month — fine for a prototype, tight for production. Paid "Growth" starts at $19/month, then usage adds ~$0.012 per mobile MAU and ~$0.004 per web push subscriber.
Developer caveats: the data model assumes marketing campaigns — if you're sending transactional system notifications (order updates, security alerts), you're paying for and routing around a CRM-shaped product. Billing scales with MAUs, which quietly punishes growth that isn't monetized yet. API keys and SDK footprint are heavier than a thin REST layer.
Choose it when: campaigns, segmentation, and cross-channel journeys are the actual product requirement.
4. Courier — notifications as code, across every channel
Courier is an orchestration layer: you define notification workflows in code (actions, provider fallbacks, template versions), and it routes across push, email, SMS, and in-app.
What's great: genuine developer ergonomics for multi-channel logic — "push first, fall back to email after 30 minutes" is one workflow definition. Strong template/versioning story.
Developer caveats: if push is your only channel, you're adopting an orchestration engine for problems you don't have yet. Pricing is per delivered send ($0.005 on the pay-as-you-go Business plan after the free Developer tier's 10,000 sends/month) — cheap per unit, but multi-channel workflows multiply sends, so model your event volume before forecasting the bill.
Choose it when: a single product event must fan out across several channels with business rules.
5. Knock — prioritization for notification-heavy products
Knock focuses on the product side of notification infrastructure: workflows, user preferences, deduplication, batching, and feed + push combined — aimed at teams whose users receive many notifications (dev tools, project management, social).
What's great: the prioritization/digest problem is real and no one else solves it as directly; excellent docs.
Developer caveats: preference-center and workflow concepts add adoption surface; push transport still rides on your FCM/APNs credentials underneath (third-party provider costs aren't included). The jump from the free Developer plan (10,000 messages, 500 guide active users) to Starter is a flat $250/month before overage — a steep step if you only needed a bit more volume.
Choose it when: your users' problem is notification noise, not delivery.
6. Pusher Beams — sane push for realtime apps
Beams wraps FCM and APNs behind a simple API with interest-based targeting, friendly to teams already using Pusher's pub/sub products.
What's great: very low ceremony if you're in the Pusher ecosystem; clean SDKs.
Developer caveats: billed on push subscribers with flat tiers (free Sandbox at 1,000, then $29/mo for 10k, $99/mo for 50k, $199/mo for 115k, $399/mo for 250k) — predictable, but you pay for registered subscribers whether you message them or not; deeper queue/DLQ/scheduling machinery is thinner than infra-focused alternatives.
Choose it when: realtime channels and push should share one vendor and mental model.
7. ntfy — the open-source wildcard
ntfy is self-hosted pub/sub push: curl a topic, get a notification. No SDK required, fully open source, huge homelab following.
What's great: total control, zero vendor, dead simple for alerts and IoT-style flows.
Developer caveats: you own scaling, token management, APNs-equivalent delivery guarantees (mobile support is app-mediated), and compliance. Not a fit for consumer-app fan-out at marketing scale.
Choose it when: it's you against the machine, and the machine is your own homelab or internal ops alerts.
How to choose (decision framework)
- Only need transactional push, low volume, love building? Raw FCM. Budget ~a permanent side project for queues and token hygiene.
- Push is core and you want it reliable by Monday? A managed layer: QueueFly if you want pure infrastructure on your own FCM; Beams if you're on Pusher.
- Marketing owns the roadmap? OneSignal or the MoEngage-class suites.
- One event → many channels with rules? Courier or Knock.
- Self-host or air-gap requirements? ntfy (mobile caveats apply).
The honest answer is that categories 2 and 3 can coexist: many teams run a marketing suite and a separate transactional path, because security alerts and flash-sale blasts have opposite reliability profiles.
What is the best push notification API for developers, in one paragraph?
For free, direct delivery, Firebase Cloud Messaging is the industry standard — but it requires you to build queues, retries, and scheduling yourself. For managed infrastructure on top of FCM, QueueFly adds auto-scaling queues, scheduling, token management, and dead-letter queues, with unlimited notification sends on every plan, from €44/month. For marketing campaigns, OneSignal is the most popular all-in-one platform; for multi-channel orchestration, choose Courier or Knock.
Next up in this series: the FCM token-management deep dive (why UNREGISTERED errors pile up and how to clean them automatically), and head-to-head comparisons. If you spotted a price that changed since publication, email me — it's in the docs footer, and I fix these fast.
Top comments (0)