Skip to content
Public beta — Swift, Android and Flutter SDKs are liveRead the source
Notifie
NEWNative SDKs on CocoaPods, Maven Central and pub.dev

Push notifications you can actually prove arrived

Notifie is notification infrastructure for mobile teams. Schedule locally with no backend, or emit an event and let a durable workflow decide — then follow it all the way to the device that displayed it.

  • No credit card
  • Free during public beta
  • You keep your APNs and FCM keys
run_2f8c · order_shippedDelivered
event.receivedorder_shipped12ms
workflow.matchedshipping-update-v318ms
user.resolvedusr_2f8 · 2 devices23ms
provider.acceptedapns-id 8F2…171ms
device.presentediPhone · production1.4s
user.openeddeep link /orders/A-11836.2s
Local remindersStreaksAbandoned cartRe-engagementScheduled digestsDelivery evidenceInactivity nudges
import Notifie

Notifie.initialize(apiKey: "ntf_live_...")
Notifie.identify(userId: "usr_2f8")

// That is the integration. Everything after this is configured, not coded.
Notifie.track("order_shipped", properties: ["orderId": "A-1183"])

// Enrol the device once; the SDK owns the APNs token from here.
try await Notifie.enableNotifications()

Start where you are

Three calls, then stop writing notification code.

Initialize, identify, track. From that point the decisions — who receives what, after how long, how often, on which platform — move to the dashboard, where you can change them without shipping an app update.

When the event lives on your server instead, the same product works without an SDK: POST it, and a durable workflow handles waiting, branching and delivery.

npx @notifie-dev/cli@beta init

Published to the registries you already use

CocoaPodspod 'Notifie'0.1.0-beta.5
Swift Package Managerrohit1521/notifieNext release
Maven Centraldev.notifie:notifie-android0.1.0-beta.6
pub.devnotifie_flutter0.1.0-beta.10
npm@notifie-dev/cli0.1.0-beta.2

How it works

Three moving parts, one continuous record.

Most stacks lose the thread between the thing that happened and the notification a person actually saw. Notifie keeps them attached to the same run.

  1. 01

    Emit an event

    Call the SDK, or POST to the events API from your backend. Identity, device and app context travel with it.

  2. 02

    Run a durable workflow

    Wait days, branch on properties, cap frequency and retry — outside the request that started it.

  3. 03

    Prove what happened

    Provider acceptance, device presentation and the user’s open stay three separate facts.

Delivery evidence
Provider acceptedapns-id 78679067-95B3200 · production
Device presentediPhone 17 Pro · iOS 26.5+1.4s
User opened/orders/A-1183+6.2s
Second deviceiPad · token deactivated410 Unregistered

One send, two devices, two different truths. Retrying would have double-sent to the phone.

Accepted is not delivered

The last mile is where notification tools stop looking.

APNs returning 200 means Apple took the request. It does not mean a banner appeared, and it certainly does not mean anybody read it. Notifie records provider acceptance, device presentation and the user’s open as three separate facts — so “it says it sent” is never the end of the investigation.

  • Per-token outcomes, not one status per send
  • Permanent failures deactivate a dead token
  • Retryable failures keep the run and its reason

Built for production

The boring guarantees, handled.

Replay-safe ingest

Send the same messageId twice and Notifie stores one event and dispatches one job.

Your provider accounts

APNs keys and FCM service accounts are encrypted, write-only to the browser, and never logged.

Six trigger types

Instant, delayed, scheduled, recurring, inactivity and API — one automation model behind all of them.

Fires once, not daily

Inactivity triggers re-arm only after the user comes back. Dormant users do not get a notification every morning.

Honest delivery states

Accepted is not delivered and delivered is not seen. Notifie refuses to collapse them into one optimistic status.

Works without the cloud

Events, permissions, deep links and token handling live in open SDKs you can read and fork.

Questions

Before you wire it into production.

Do I need APNs or FCM credentials?

Yes — Notifie sends through your own Apple and Firebase accounts rather than pooling delivery through ours. You upload an APNs key or a Firebase service account once, per app. Only the platforms you actually ship need one, so an Android-first project never has to touch APNs.

Is Notifie another push provider?

No. Notifie sits above APNs and FCM. Your app keeps its own Apple and Firebase credentials; Notifie owns identity, durable execution, targeting and the evidence trail around them.

Does “accepted” mean the user saw it?

No, and this is the distinction the product is built around. Provider acceptance only proves APNs or FCM took the request. Presentation on the device and the user’s open are recorded separately.

Which SDKs can I install today?

Swift, Android and Flutter are published to public registries, along with the CLI on npm. React Native and Web are still in private beta and are not published yet.

Is it open source?

The device layer is: SDKs, event contracts and the CLI. The cloud runtime that executes workflows and stores delivery evidence is not.

Ready to send one real notification?

Connect an app, emit a real event, and follow it to a physical device. Free while Notifie is in public beta.

Get started free

Simple pricing

Start free. Pay only when your volume outgrows the beta limits.

See pricing

Open at the edge

Read, fork and vendor the SDKs. Your app should not need us to stay useful.

View on GitHub