Web Push · no app · no email
Notifications that reach you, even with the tab closed.
Push Relay is a tiny notification service built on the open Web Push standard. Subscribe once and your browser gets the message — delivered straight from the server.
Turn on notifications
Get a browser notification when something happens — no inbox, no install.
service worker: registering…
You’re subscribed
This browser will now get notifications as bilal — even with the tab closed.
python manage.py send_test --label bilal (the authenticated send API arrives in a later phase).status: subscribed · endpoint stored
Notifications are blocked
Your browser is set to block notifications for this site, so we can’t subscribe you yet.
status: permission denied
Subscribed — but notifications look blocked
You’re subscribed, but a test notification didn’t appear. Something on this device is hiding notifications from this site.
How to check
- Extensions: disable notification/annoyance blocking (or fully allow this site).
- macOS/Windows: turn off Focus / Do-Not-Disturb.
- Browser: settings → Notifications → allow this site; avoid “quieter messaging”.
status: subscribed · display blocked?
That didn’t work
Something went wrong enabling notifications. Please try again.
status: error
Push isn’t available here
This browser doesn’t expose the Web Push API, so notifications can’t be enabled on this device.
On desktop & Android: use Chrome, Firefox, or Edge.
status: unsupported · Push API missing
How it works
You subscribe
You grant permission and the browser hands us a PushSubscription — an endpoint plus its encryption keys.
We store it
The subscription is saved server-side, tied to your label. The private VAPID key never leaves the server.
We push
The server encrypts a payload, signs it with VAPID, and the push service wakes your Service Worker — even with the tab closed.
For your other apps
One API call to notify yourself
Point an uptime monitor, a cron job, or an RSS digest at Push Relay instead of sending email. One authenticated request:
# notify the browser subscribed as "bilal" curl -X POST https://push-relay.up.railway.app/api/v1/send \ -H "Authorization: Bearer $PUSH_RELAY_SEND_KEY" \ -H "Content-Type: application/json" \ -d '{"label":"bilal","notification":{"title":"Site down","body":"api.example.com is not responding"}}'