Skip to content

fix: Safari PWA installation — Apple meta tags and icon (#126)#140

Merged
neonwatty merged 1 commit intomainfrom
fix/safari-pwa
Apr 19, 2026
Merged

fix: Safari PWA installation — Apple meta tags and icon (#126)#140
neonwatty merged 1 commit intomainfrom
fix/safari-pwa

Conversation

@neonwatty
Copy link
Copy Markdown
Collaborator

Summary

  • Added metadata.icons.apple to layout.tsx so Next.js emits the <link rel="apple-touch-icon"> tag Safari requires for Add to Home Screen
  • Generated a 180×180 PNG apple-touch-icon.png from the existing icon.svg — Safari ignores SVG icons entirely
  • Added the PNG entry to manifest.json with "purpose": "any maskable" so Android/Chrome can also use it for adaptive icon masking
  • Updated pwa-offline.spec.ts with assertions for the new manifest icon count and Apple meta tag presence

Closes #126

Test plan

  • Typecheck passes (pnpm turbo typecheck)
  • E2E: pwa-offline.spec.ts manifest test asserts 2 icons (SVG + PNG)
  • E2E: new "Apple PWA meta tags are present" test checks apple-mobile-web-app-capable and apple-touch-icon
  • Manual: open Safari on iOS, navigate to the dashboard, tap Share → Add to Home Screen — icon should render as the green "i" on parchment background

#126)

Safari ignores SVG icons for Add to Home Screen. Adds a 180x180 PNG
apple-touch-icon generated from the existing icon.svg, the metadata.icons.apple
link in layout.tsx, and the PNG entry in manifest.json. E2E test updated to
assert both the manifest icon count and Apple meta tag presence.
@neonwatty neonwatty added this pull request to the merge queue Apr 19, 2026
Merged via the queue into main with commit 95090ee Apr 19, 2026
5 checks passed
@neonwatty neonwatty deleted the fix/safari-pwa branch April 19, 2026 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Still can't download from Safari as PWA.

1 participant