Architecting for Safari's Intelligent Tracking Prevention (ITP)
Learn how to handle Safari's Intelligent Tracking Prevention (ITP) using the Storage Access API to prevent session loss and cookie expiration in cross-site contexts.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how to handle Safari's Intelligent Tracking Prevention (ITP) using the Storage Access API to prevent session loss and cookie expiration in cross-site contexts.
Safari now supports the standard Web Push API on macOS Ventura and iOS 16.4+. Learn how to integrate with APNs, deploy a single push stack, and navigate iOS installation constraints with a practical example and engineering trade‑offs.
How Safari's :focus-visible support differs by version and platform, plus a CSS pattern that keeps keyboard focus visible everywhere while hiding the ring for mouse clicks.
Safari's ITP partitions cookies and storage by top-level site, silently breaking embeds that assume a shared cookie jar. Here's the smallest architecture that survives it.
Safari's ITP caps JavaScript-set cookies at 7 days, silently breaking analytics and sessions. Here's how the rule works, how to verify it, and why server-set cookies are the fix.
Safari’s service‑worker support is solid but quirky. This guide shows the exact requirements, a lean design that works across Safari 15+, how to respect data boundaries, what to check in devtools, and how to handle common failure modes.
A decision guide for enabling HTTP/2 in Safari, comparing options, explaining trade‑offs, and showing a concrete Nginx configuration with verification steps.
Safari‑only logouts and broken embeds usually trace to Intelligent Tracking Prevention. Diagnose which ITP mechanism is firing, then apply the matching fix—server‑set cookies, Storage Access API, or first‑party redirects.
When Safari logs users out after navigation, ITP may block the auth cookie. This guide walks through detecting the issue, interpreting cookie attributes, applying fixes, and knowing when to file a WebKit bug.