Web push
Web push delivers system notifications to your users’ devices — even when your product’s tab is closed. Notifizz sends them under your own identity (a per-environment VAPID key pair), directly through the browsers’ push services. There is no third-party push provider in the loop, and the payload is end-to-end encrypted: the push services relay bytes they cannot read.TL;DR
- Two setup steps. Generate the environment’s key in Settings → Web push, then serve one file —
notifizz-sw.js— at the root of your application’s origin. The widget does the rest. - Opt-in is the user’s. The Notification Center widget shows a discreet, dismissible prompt — or drive the opt-in from your own button with the SDK, no bell required. Either way, the native browser permission dialog only ever fires on the user’s explicit click.
- Same identity as the Notification Center. Recipients are matched on the user id your widget authenticates with — no separate audience to manage.
- Verified from the real browser. The widget checks in situ that the service worker is actually served on your origin and reports the result per environment — the settings page tells you exactly what’s wrong, with the fix.
- Privacy friendly. Payloads are encrypted end to end (RFC 8291); browser push services never see the content. Notifizz holds no customer data beyond the subscription itself.
How it works
- Set up the environment. In Settings → Web push, generate the environment’s key pair. The public key is served to your frontend automatically; the private key never leaves the Notifizz backend.
- Serve the service worker. Download
notifizz-sw.js— there’s a Download button right under this step in Settings → Web push — and serve it at the root of your application’s origin (https://your-app.com/notifizz-sw.js). It’s a static file: no build step, no code. It registers under a dedicated scope, so it never conflicts with your own service worker or PWA. - Let the widget do the rest. If you already run the Notification Center widget, web push is live: at load time the widget verifies the service worker, reports the setup state, and — once a user opts in — registers the browser’s push subscription with Notifizz.
The opt-in experience
Browsers punish unsolicited permission prompts — some permanently demote sites that ask on page load. Notifizz never does that:- A soft prompt appears at the top of the notification panel, only when the environment is configured and the user hasn’t decided yet.
- The native browser dialog fires only on the user’s click of the “Enable” button.
- “Later” dismisses the prompt and remembers the choice per browser.
- Opting out from the widget removes the subscription on both sides.
Opt-in from your own UI
Don’t run the notification center, or want the prompt somewhere the bell isn’t? The SDK exposes the opt-in directly, so you own the button and its timing (a contextual prompt after real engagement converts far better than one on page load). The plumbing is identical — same service worker, same subscription — only the trigger is yours. The status is reactive. It startsunavailable and settles once the widget has booted web push for the signed-in user:
optIn() from a real user gesture (a click) — the browser ignores a permission request that isn’t tied to one.
On a framework Notifizz doesn’t ship a SDK for (Vue, Svelte, Solid…)? The same opt-in is two bridge commands —
window.notifizz("webpushOptIn") and the reactive webpushStatus on the notifizz:state event. See the widget bridge reference.Sending
Web push is a channel like any other: pick it when adding a notification to a campaign, compose the title and body (with variables), and the campaign copilot can design it for you. Two guardrails are specific to the channel:- Review never reaches real users. Before a campaign is Live, pushes are delivered only to your team’s sandbox testers — members who opted in from Settings → Web push (“Test on this browser”, capped at 5).
- Payload budget. Push services cap payloads around 4 KB; the composer keeps you within it, and titles/bodies are truncated aggressively by the OS (the composer’s platform preview shows exactly how).
FAQ
Do my users need to install anything?
Do my users need to install anything?
No. Web push works in the browser they already use. The only requirement on your side is serving the
notifizz-sw.js file on your origin — a static file, no code changes.Which users can receive a push?
Which users can receive a push?
Users who granted the browser permission through the widget’s opt-in and have at least one active subscription. Recipients are matched on the same user id as the Notification Center.
What happens if a user clears their browser data?
What happens if a user clears their browser data?
Their subscription dies. The push services report it on the next send, and Notifizz prunes that subscription automatically — the user simply opts in again next time.
Can I use my own push provider?
Can I use my own push provider?
Notifizz sends through the browsers’ push services directly under your VAPID identity — there is no per-send cost and no provider account to create. Provider-swapping per organisation is supported by the architecture if a specific need arises; talk to us.