Web Push Notifications
One prompt, one subscription, one HTTP call. Push notifications land on desktop and mobile without an app, an extension, or a download.
Opt this browser in and watch the subscriber count tick up. This is the same endpoint your campaign code calls.
Your browser will ask permission. Nothing is sent until you allow it.
# subscribe in the browser (one prompt, no form) navigator.serviceWorker.register('/sw.js') .then(reg => reg.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: '<vapid-public-key>' })) .then(sub => fetch('/subscribe.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ token: sub.endpoint, keys: sub.toJSON().keys }) })) # send to every subscriber, from anywhere curl -X POST https://push.gsvirtual.net/api/v1/send \ -H "Authorization: Bearer gsv_key" -H "Content-Type: application/json" \ -d '{"channel":"push","title":"Back in stock","body":"The thing you wanted is available again.","url":"/shop/blue-hat"}'
Three moving parts, and you only ever touch two of them.
The visitor allows notifications through the browser's own prompt. No email, no form, no app install.
One authenticated HTTP call from your dashboard or your code. Title, body, and a link are enough.
Desktop or mobile, foreground or not. Queued deliveries are retried when the device comes back online.
The boring parts - retries, dead-token cleanup, quotas, delivery logs - are handled for you.
A single browser prompt converts a visitor. No wall of fields before the opt-in.
Queue a campaign for a moment that suits your audience, not just right now.
Tokens the push service reports as dead are pruned on the next send, so lists stay honest.
Every campaign records who was reached, who was not, and why.
Read, write, or readwrite bearer keys per client, with a push quota you control.
Messages queue on the service and arrive as soon as the device reconnects.
The same primitive fits very different jobs.
Most carts are abandoned. A single timely nudge recovers a meaningful slice of them.
Let shoppers tell you what they want, then ping the moment it returns.
Reach the visitors who already showed interest in an item.
Shipment and status changes that people actually want on their phone.
Anything with the Push API, on desktop, mobile or tablet.
iOS and iPadOS require Safari 16.4 or newer, and the site must be served over HTTPS. Notifications must be installed from a user gesture on iOS.
Start free. Pay when the list grows.
Up to 3,000 subscribers
Up to 50,000 subscribers
Unlimited subscribers
No. There is no app and no extension. The browser shows a permission prompt; if the visitor allows it, you have a subscription.
Yes, on iOS and iPadOS 16.4 and newer. Safari on those releases supports Web Push, but the site must be HTTPS and the first subscription has to happen from a tap.
Queued deliveries are retried when the device reconnects. If the push service reports a registration as permanently invalid, it is pruned from the list on the next send.
Yes. Subscriptions are plain JSON you can read and archive yourself, and the API exposes your own list.
Subscriptions are being collected now, but outbound delivery stays disabled until a push provider credential is configured. Add one under Admin → Providers and delivery switches on without any code change.