FastLinkIt

Browser push notifications

Accountaccountdevices6 min read

FastLinkIt can send real-time push notifications to your browser — even when the tab is closed — for important events like new support tickets, ticket replies, paid Stripe checkouts, donation receipts, and incoming Drops. Push is opt-in per device and works on Chrome, Edge, Firefox, Safari 16+, and any browser with a Service Worker.

What triggers a push

Event Who gets it
New support ticket arrives via email Ticket owner
Reply posted to one of your tickets via email Ticket owner
Stripe checkout completes (Payment API) Merchant
Fundraising donation marked as paid Campaign owner
New Drop received from another device Drop recipient

More sources will hook into the same pipeline over time.

Enable push on this device

  1. Go to /Account/Manage
  2. Scroll to the "Browser push — this device" card (below your profile form)
  3. Click Subscribe
  4. Your browser will prompt for permission — click Allow
  5. (Optional) Click Send test to verify it's working

Each browser on each device is a separate subscription. Subscribe on your laptop and phone independently.

Mobile devices

Push notifications are per-device, so you have to subscribe on each phone separately even if you've already subscribed on your laptop.

Android (Chrome, Edge, Firefox, Samsung Internet, Brave)

Web Push works out of the box on any modern Android browser.

  1. Open the FastLinkIt site in Chrome / Edge / Firefox on your Android device
  2. Sign in with your account
  3. Tap the menu → navigate to Account → Manage
  4. Scroll to the "Browser push — this device" card
  5. Tap Subscribe
  6. When the system prompt appears, choose Allow
  7. Tap Send test — you should see a notification appear in the system tray within a few seconds

If you don't see the prompt, your browser may already have notifications blocked for the site. Open the address bar lock icon → Site settings → Notifications → Allow, then return and tap Subscribe again.

iPhone / iPad (Safari)

iOS Safari has a hard platform restriction: Web Push only works when the site is added to the Home Screen (PWA mode), and only on iOS 16.4 or newer. This is enforced by Apple, not by FastLinkIt.

  1. Open the FastLinkIt site in Safari on your iPhone or iPad (must be Safari, not Chrome / Firefox / Edge — they all use the same restricted WebKit on iOS)
  2. Tap the Share button (the square with an arrow pointing up)
  3. Scroll down and tap Add to Home Screen
  4. Confirm the name and tap Add
  5. Close Safari and open the new FastLinkIt icon from your Home Screen — it launches in standalone PWA mode
  6. Sign in if prompted, then go to Account → Manage
  7. Scroll to the "Browser push — this device" card
  8. Tap Subscribe and tap Allow when iOS asks for permission
  9. Tap Send test — you should see a Notification Center alert

If you stay in regular Safari (not the Home Screen icon), the Subscribe card will tell you push isn't supported and suggest adding to the Home Screen. This is by design — trying to register Web Push in regular Safari on iOS interfered with page navigation, so the app deliberately disables push initialisation outside of PWA mode.

Mobile troubleshooting

  • No prompt appeared: site notifications were previously denied. Clear them via site settings and try again.
  • Subscribed but no notifications arrive: confirm via Send test first. If the test works but real events don't, the event source might not be firing for your account.
  • **iOS shows "Not supported"😗* you opened the site in regular Safari instead of the Home Screen PWA — redo step 5 above.
  • Android battery saver: aggressive power-saving modes (especially on Samsung / Xiaomi / Huawei) can suppress push wake-ups. Whitelist your browser in the device's battery settings.

The notification bell

The bell icon in the top bar shows a small coloured dot (distinct from the unread-count badge) telling you the current push state:

  • Green dot — active on this device
  • Yellow dot — enabled on the account but not on this browser yet
  • Red dot — blocked in the browser's site settings

Open the bell dropdown for quick actions: enable now, send a test, or jump to /Account/Manage.

The "Enable browser notifications" banner

If you've enabled push on your account but not on this specific browser, a dismissable banner appears at the top of every page. Click Enable now to subscribe without leaving the page. The banner uses Bootstrap's d-flex/d-none toggle so it plays nicely with dark mode and small screens.

Unsubscribe or revoke

  • From FastLinkIt: /Account/ManageUnsubscribe button on the push card (removes the subscription row — the server stops trying to reach this device)
  • From the browser: site settings → Notifications → Block (or Reset). The server auto-cleans dead subscriptions when it gets a 404/410 response from the push service.

Troubleshooting

The Subscribe button does nothing. Make sure you're on HTTPS (push requires a secure context) and that your browser isn't in private/incognito mode. Check the browser console for errors from push.js.

I allowed notifications but none arrive. Click Send test on the Manage page. If the test arrives but real events don't, check that the event source actually fires for your account (e.g. the Stripe webhook is reaching you). If the test also fails, your browser may have blocked background notifications — re-check site settings.

I clicked Deny and now I can't re-subscribe. Browsers only show the permission prompt once. To re-enable, open the lock icon in the address bar → Site settings → Notifications → Allow (or Reset), then come back and click Subscribe.

Notifications arrive twice. You may have subscribed from the same browser twice — each subscription is independent. Unsubscribe and subscribe again to reset to one row.

Does Safari work? Yes, Safari 16.4+ on macOS Ventura/Sonoma and iOS 16.4+ supports Web Push. On iOS the site must be added to the Home Screen first — see the iPhone / iPad section above.

For admins / self-hosters

Push requires VAPID keys configured in appsettings:

"WebPush": {
  "PublicKey": "...",
  "PrivateKey": "...",
  "Subject": "mailto:admin@example.com"
}

Generate a pair with npx web-push generate-vapid-keys. Use different keys for dev and production — changing keys invalidates all existing subscriptions, so migrations require users to re-subscribe.

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.