notifi

Privacy

Privacy policy

This describes what notifi stores, how long it keeps it, what the server can and cannot read, and what the person sending you a notification can learn about you.

Last updated 3 August 2026

There is no account

notifi has no sign-up, no email address, no password and no device linking. On first launch the app generates two keypairs on the device. The private halves never leave it: the signing key is held in the Secure Enclave and cannot be exported at all, and the decryption key is held in the keychain, marked so that it is not included in iCloud backups or synced to other devices.

The server identifies a device only by its public key. Nothing in the system links that key to a name, an email address or any other identity.

What the server stores

Your device

Your send keys

Your notifications

What the server cannot read

Notification content (the title, body, link and image URL) is encrypted to your device's public key before it is written to the database, using HPKE (P-256 / HKDF-SHA256 / AES-256-GCM). The server holds no private key that can undo this. A full copy of the database, together with every server secret, does not reveal the contents of a single notification. Your send key names are encrypted the same way.

This is what "neither we nor Apple can read your notifications" means on the landing page, and it is the limit of that claim. The sections below cover what remains visible.

What the server can see

Encrypting the contents does not hide the fact that a notification happened. The server necessarily observes:

Because the sender and the recipient both talk to the same server, that server is in a position to correlate the two. If your threat model does not allow for that, notifi is not the right tool.

How long it is kept

notifi is a relay, not a mailbox. Once your device has a notification, the server copy is gone and the only copy is the one on your device.

Server logs

The service runs on Cloudflare Workers. Cloudflare records the metadata of requests reaching the network, including source IP address, timestamp and the full request URL. notifi does not control the contents of those logs and does not write notification contents to logs of its own.

This matters for how you send. The /send endpoint accepts a key and a body as URL query parameters, which is convenient for a one-off curl. Anything placed in a URL appears in those logs in the clear, before it is ever encrypted, and also in your shell history and in any proxy between you and Cloudflare.

Send the key as an Authorization: Bearer header and the body in a POST body instead. Neither is logged.

When the server hits an error it cannot handle, a report of that error is sent to Sentry, an error-tracking service, so that it can be fixed. A report carries the failure itself — what broke, and where in the code — along with the request's method and route. It does not carry notification contents, request bodies, headers, or the source IP address. A send key involved in a failed request is replaced, before the report leaves the server, by a short one-way fingerprint of itself: enough to tell that several reports concern the same key, and not enough to recover the key from. Nothing about your device or your notifications is sent to Sentry in the ordinary course of a request; a report exists only where something has gone wrong.

Images in notifications

A notification can carry a link to an image, and the host serving it is chosen by whoever sent the notification, not by notifi. Loading such an image means your device makes a request to that host, which reveals your IP address, your rough location, and the exact moment the notification reached you. A sender can use this to tell whether and when you received something.

Because of this, the app does not load images automatically. It shows a placeholder and loads the image only when you tap it. If you would rather images appear on their own, there is a switch in Settings › Privacy. Turning it on applies to notifications as well, which means images will be fetched on arrival, before you have opened anything.

On your device

No tracking

The app contains no analytics, no crash reporting and no advertising identifiers — the error reporting described under Server logs above is the server's own, and the app takes no part in it. It talks to notifi.it and to Apple's push service, and to an image host only when you ask it to load an image. The Mac app additionally embeds Sparkle, an open-source updater, which periodically checks github.com for a new release; that request exposes your IP address to GitHub and carries nothing else about you. This website sets no cookies, loads no analytics, and makes no third-party request of any kind: its fonts are served from notifi.it.

No data is sold, rented or shared with anyone, and nothing here is used to build a profile or to advertise.

Children

notifi is not directed at children and collects no information that would identify anyone, of any age.

Changes and contact

If this policy changes, the date at the top of this page changes with it, and the previous versions remain in the public git history of the project.

Questions about privacy, or a request to delete data held about a device, can be raised at github.com/notifi-it/notifi/issues. Note that without your device's public key there is no way to identify which records are yours. Deleting the app is the faster and more complete route.