demo · v149 · developer trial

Quota & Persistence Explorer

Read the storage quota estimate before and after writing to IndexedDB — watching how the SQLite backend reports usage via navigator.storage.estimate(). Request persistent storage, check durability modes ('default', 'strict', 'relaxed'), and compare estimated vs actual usage across a configurable write batch.

Batch size: 500 records Record size: 512B
Quota
Used
IDB usage
% used
Run estimate to see usage
🔓
Persistence unknown
Click "Request persistence" to check

Transaction durability modes

'default' Recommended Browser decides — SQLite WAL journal gives good durability
'strict' Safest Waits for OS flush; slower writes but guaranteed on power loss
'relaxed' Fastest No OS sync; fastest writes but small risk on hard crash

Write batch by durability

Operation log

// navigator.storage.estimate() — reads quota and usage
const estimate = await navigator.storage.estimate();
console.log(estimate.quota);  // bytes available to this origin
console.log(estimate.usage);  // bytes currently used
console.log(estimate.usageDetails?.indexedDB); // IDB specifically

// navigator.storage.persist() — request persistent storage
const persisted = await navigator.storage.persist(); // true if granted
const isPersisted = await navigator.storage.persisted(); // re-check

// IDB transaction durability modes (IndexedDB)
const tx = db.transaction('store', 'readwrite', { durability: 'strict' });
// 'default' | 'strict' | 'relaxed'

see also

implementation reference

Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗