Dexie.js is a minimalistic wrapper library for IndexedDB that simplifies working with the browser's standard database.
IndexedDB provides portable client-side storage across all browsers, but its API is complex and inconsistent across implementations. Dexie.js abstracts away this complexity, providing a cleaner interface for defining schemas, querying data, and performing bulk operations. The library works around known bugs in IndexedDB implementations to deliver more stable behavior. Its bulk methods leverage an IndexedDB feature that avoids triggering success callbacks for each individual operation, enabling significantly faster performance when storing large amounts of data.
Dexie.js suits any web application needing client-side persistence, from progressive web apps to Electron desktop applications and Capacitor-based mobile apps. It works with vanilla JavaScript, React, Vue, Svelte, and Angular. If your project requires synchronization across devices or real-time collaboration, Dexie Cloud extends the library with sync, authentication, access control, and file storage capabilities, eliminating the need to build a custom backend. The README does not compare Dexie.js to other IndexedDB wrappers.
The project maintains active development with regular updates and comprehensive documentation including tutorials for multiple frameworks, an API reference, and sample applications. The codebase is written in TypeScript and includes a dedicated cloud offering that integrates seamlessly with the core library. Legacy addons for synchronization have been deprecated in favor of the modern Dexie Cloud solution.