PWA storage limits: what you actually get in 2026
IndexedDB, Cache API and OPFS quotas across Chrome, Safari, Firefox and Edge — with the eviction rules that decide what survives.
Storage quotas are the most misquoted numbers on the web. The truth in 2026 is generous everywhere — with an asterisk on Safari. Here’s the current shape.
Chrome, Edge, Opera (Chromium)
Total quota per origin: up to 60% of the device’s total disk. Eviction: least-recently-used when the browser is under pressure. Storage backends counted: IndexedDB, Cache API, File System Access (OPFS), Service Worker registrations.
Safari (iOS + macOS)
Cap per origin: ~1 GB, negotiable up to more with user prompt (rare). Eviction: 7-day inactivity clears IndexedDB and Cache API for non-installed sites. Installed PWAs skip the 7-day rule.
Firefox
Group limit: 20% of disk shared across an eTLD+1 group. Per-origin: 2 GB soft cap. Eviction: LRU under pressure.
Request "persistent"
const granted = await navigator.storage.persist();
// true = your quota won’t be evicted automatically
Chrome auto-grants for installed PWAs. Firefox prompts. Safari doesn’t expose the API but installed PWAs get equivalent treatment.
Check available quota
const { quota, usage } = await navigator.storage.estimate();
console.log(`${(usage / quota * 100).toFixed(1)}% used`);
Design implications
- Don’t assume any specific limit — check
estimate()and degrade. - For anything the user would lose sleep over, sync to the server before caching locally.
- OPFS is the right home for large binary blobs (video, audio, files) — not IndexedDB.
Ship your install prompt in 60 seconds
InstantPWA is one line of code. Free forever for one widget, no card required.
Get started free