code-apple-pwa-ios-16-guru
Skill0 starsChanged 45 days agoMITView on GitHub
iOS Safari white screen or WSOD on production
In this repository146 other files it gives its agents.
- accessibility-compliance-enforcerSkill
- ai-anthropic-api-specialistSkill
- ai-anthropic-claude-runtime-env-guruSkill
- ai-avatar-presenter-specialistSkill
- ai-aws-bedrock-agentcore-guruSkill
- ai-aws-bedrock-agents-guruSkill
- ai-aws-bedrock-specialistSkill
- ai-aws-sagemaker-specialistSkill
- ai-context-masterSkill
- ai-llm-datasets-specialistSkill
- ai-powered-personalization-engineSkill
- ai-video-editor-postproduction-guruSkill
- ai-video-generation-orchestratorSkill
- ai-voice-audio-production-guruSkill
- ai-voice-dubbing-orchestratorSkill
- android-ndk-coderSkill
- apac-market-specialistSkill
- app-store-optimization-specialistSkill
- aptos-react-next-wallet-integrationSkill
- aptos-ts-sdk-coreSkill
- authjs-specialistSkill
- aws-console-cli-agentSkill
- aws-cost-budgets-specialistSkill
- aws-ec2-lambda-s3-specialistSkill
- aws-eks-specialistSkill
- aws-iam-guruSkill
- base-erc4337-paymaster-sponsorshipSkill
- base-react-next-wallet-integrationSkill
- business-viral-adoption-acceleratorSkill
- ci-cd-pipeline-specialistSkill
- codebase-memory-mcpSkill
- competitive-intelligence-analystSkill
- competitive-intelligence-specialistSkill
- crisis-communication-reputation-managerSkill
- cross-border-legal-compliance-specialistSkill
- cursor-agents-orchestration-guruSkill
- cursor-hooks-automation-guruSkill
- cursor-installer-engineerSkill
- cursor-marketplace-publisher-guruSkill
- cursor-mcp-plugin-integration-specialistSkill
- cursor-plugin-architect-guruSkill
- cursor-sdk-automation-guruSkill
- cursor-skills-rules-author-guruSkill
- cybersecurity-governance-specialistSkill
- dagi-general-expertSkill
- developer-experience-architectSkill
- devops-aptos-gas-station-opsSkill
- devops-auto-repair-shop-crm-guruSkill
- devops-base-paymaster-opsSkill
- devops-ffmpeg-live-transmux-hls-packaging-guruSkill
- devops-hetzner-api-specialistSkill
- devops-k8s-dns-cluster-guruSkill
- devops-k8s-forgejo-guruSkill
- devops-k8s-guruSkill
- devops-k8s-local-storage-guruSkill
- devops-k8s-mail-addons-guruSkill
- devops-k8s-nginx-guruSkill
- devops-k8s-rook-ceph-guruSkill
- devops-k8s-tailscale-tunnelSkill
- devops-k8s-valero-backupSkill
- The first 60 shown.
The file
Files
Apple PWA iOS 16+ Guru
Summary
On iOS, Web Push is NOT a Safari-tab feature — it ships for Home Screen web apps starting iOS/iPadOS 16.4 (WebKit blog 13878). In Safari tabs, PushManager is absent and the Notification global is often undefined; code that reads Notification.permission without 'Notification' in window throws ReferenceError and can white-screen React apps mounted globally (e.g. FCMProvider). macOS Safari 16.1+ supports standards-based Web Push in browser tabs. Home Screen web apps require HTTPS, a manifest with display standalone or fullscreen, service worker registration, user-gesture permission prompts, and VAPID-identified pushes to APNs (*.push.apple.com). Safari/WebKit forbids silent push: show a user-visible notification immediately when a push arrives or permission/subscription may be revoked. iOS 18.4 adds Declarative Web Push for Home Screen web apps (window.pushManager, declarative JSON payload, SW optional for display). Without a qualifying manifest, Add to Home Screen creates a bookmark that opens in the default browser (iOS 16.4+), not a standalone web app — push APIs remain unavailable. Ring clones must treat push as progressive enhancement: guard every Notification/PushManager touch, lazy-init Firebase for FCM only, and never block app shell on missing push APIs.
Instructions
- IOS_TAB_NO_PUSH — Safari tab on iPhone/iPad does not expose Web Push; PushManager and often Notification are undefined. Never assume browser notification APIs exist on iOS.
- HOME_SCREEN_ONLY_IOS — Web Push + Notifications API on iOS/iPadOS require the site added to Home Screen as a web app (manifest display: standalone | fullscreen), iOS 16.4+.
- GUARD_NOTIFICATION_GLOBAL — Always
'Notification' in windowbefore Notification.permission, requestPermission(), ornew Notification(). typeof window check alone is insufficient. - GUARD_PUSH_MANAGER — Use
'PushManager' in windowor ServiceWorkerRegistration.pushManager after SW register; false in Safari tab does not mean unsupported forever — user may need Install to Home Screen. - USER_GESTURE_PERMISSION — iOS requires notification permission request in direct response to user interaction (button tap), not on mount or setTimeout without recent gesture.
- MANIFEST_STANDALONE — Web app manifest must set display to standalone or fullscreen; link rel=manifest in document; apple-touch-icon recommended. Without it, Home Screen icon is a bookmark, not a web app.
- NO_SILENT_PUSH_WEBKIT — Service worker must call showNotification promptly on push; invisible/silent-only pushes are not supported; violations can revoke subscription.
- APNS_VAPID_ENDPOINT — Server pushes use RFC8030 over HTTPS to subscription endpoint; VAPID JWT + public key; allow egress to https://*.push.apple.com; no Apple Developer Program required for web push.
- MACOS_TAB_PUSH_OK — macOS Safari 16.1+ (Ventura+) supports Web Push in browser tabs — do not copy iOS-only guards into macOS-specific UX without feature detection.
- DECLARATIVE_WEB_PUSH_18_4 — iOS/iPadOS 18.4+ Home Screen apps: window.pushManager.subscribe, push payload with web_push:8030 + notification object; SW optional for display; navigate URL on click.
- RING_FCM_LAZY — k8s-postgres-fcm: Firebase client is FCM-only with lazy getFirebaseApp(); invalid API key must not throw on import. Push UX is optional; app shell must render without Notification API.
- STANDALONE_DETECT — Detect installed PWA: window.matchMedia('(display-mode: standalone)').matches || (navigator as any).standalone === true (legacy iOS). Use to show Install-for-push CTA vs Enable-notifications CTA.
Deeper fields
jq -r '.mission, .expertise, .keywords' "mcp/AI-LEGIOX/legiox-truth-lens/code-apple-pwa-ios-16-guru.nodus.json"
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

