Skip to main content
Web push lets you reach subscribers in their browser — no app required. Senderz self-hosts push using the W3C Push API and platform VAPID keys; there’s no third-party push vendor and no per-message carrier cost.

How subscribers opt in

A visitor subscribes from a popup on your storefront. The popup’s “Get browser notifications” element requests permission, registers a service worker, and stores the subscription.
The push service worker must be served same-origin to the storefront. It’s proxied per platform: Shopify via the app proxy (/apps/senderz/push-sw.js), WooCommerce via the plugin (/senderz-push-sw.js). Konimbo has no same-origin static path in v1, so push renders inert there.

Per-endpoint model

Push consent is tracked per browser endpoint (a hash of the subscription URL), not per email or phone. A contact can subscribe from several browsers; revoking one doesn’t affect the rest.

Fan-out

A push send fans out across every live subscription for the contact.

Auto-revoke

A provider 410 Gone / 404 marks that one subscription revoked and suppresses its endpoint. If it was the contact’s last live one, push consent drops to unsubscribed.

Compliance & pipeline

Marketing push runs through the same gates as SMS minus the wallet — there’s no per-message cost:
  • per-endpoint suppression,
  • push consent,
  • frequency caps,
  • Israeli quiet hours and Shabbat (marketing push is blocked the same way marketing SMS is).

Templates & payload

Push templates carry a title, body and url. Payloads are capped at ~3,500 bytes and rejected before the network call if larger.

Test sends

Send a test push to a specific contact from the contact’s profile. Test sends still apply per-endpoint suppression; consent, caps and quiet hours are skipped because you’re previewing your own content.
Silent endpoint rotation (pushsubscriptionchange) is handled lazily — the next send that returns 410 revokes the stale endpoint, and the visitor re-opts in via the popup next time it shows.