Web Push: goal, kickoff and full-time alerts for a followed team

Fully progressive: without VAPID keys in the environment the API says
404, the bell never renders, and the service worker addition (a push
handler via workbox importScripts — no SW strategy change) is inert.
With keys: a bell on each team page requests permission, subscribes
(one team per device) and the server diffs fixture states on every
broadcast to push Kickoff / Goal / Full time to that team's followers.
Dead endpoints (404/410) self-clean. Round-trip verified locally with
dev VAPID keys; disabled mode verified too.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 08:21:55 +02:00
parent ce83d4dbc4
commit 03b0fa734e
13 changed files with 331 additions and 6 deletions
+3
View File
@@ -409,6 +409,9 @@ export const en = {
allTeams: "All teams",
follow: "Follow this team",
unfollow: "Unfollow this team",
notifyOn: "Get goal alerts for this team",
notifyOff: "Stop goal alerts",
notifyDenied: "Notifications are blocked in your browser settings.",
eloBadge: "Elo {rating}",
titleOddsBadge: "Title {pct}",
advanceOddsBadge: "Advance {pct}",