Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Angular
  3. dexie

dexie

Apache-2.0TypeScriptv4.4.5

A minimalistic wrapper for IndexedDB that simplifies client-side database operations in browsers and hybrid apps.

Visit WebsiteGitHubGitHub
14.6k stars711 forks0 contributors

What is dexie?

Dexie.js is a wrapper library for IndexedDB, the native browser database, designed to make client-side data storage simpler and more developer-friendly. It provides a promise-based API that abstracts away the complexity of raw IndexedDB, enabling efficient querying, transactions, and data management directly in the browser. The library solves the problem of cumbersome and error-prone IndexedDB usage by offering a minimalistic, chainable syntax.

Target Audience

Frontend and full-stack developers building web applications, Progressive Web Apps (PWAs), Electron desktop apps, or hybrid mobile apps with Capacitor who need robust client-side data persistence. It's particularly valuable for teams working on offline-first applications or data-intensive browser-based tools.

Value Proposition

Developers choose Dexie.js because it dramatically reduces the boilerplate and complexity of IndexedDB while maintaining high performance and cross-browser compatibility. Its intuitive API, comprehensive feature set, and strong TypeScript support allow teams to implement reliable client-side storage faster and with fewer bugs compared to using IndexedDB directly.

Overview

A Minimalistic Wrapper for IndexedDB

Use Cases

Best For

  • Building offline-first Progressive Web Apps (PWAs) that require reliable local data storage
  • Creating data-intensive browser extensions or developer tools with complex client-side state
  • Developing Electron desktop applications that need a persistent, queryable local database
  • Implementing real-time collaborative features with sync capabilities using Dexie Cloud
  • Managing large datasets in the browser for dashboards, analytics platforms, or admin panels
  • Prototyping or building full-stack web apps with a client-side database layer before adding a backend

Not Ideal For

  • Applications requiring strict server-side data consistency without offline-first architecture
  • Projects with minimal storage needs that could use localStorage for simple key-value pairs
  • Teams needing a database with built-in graphical admin tools or SQL-like query capabilities

Pros & Cons

Pros

Simplified Promise-Based API

Replaces IndexedDB's complex transaction model with a clean, chainable syntax, as demonstrated in the Hello World examples using await and .where() for intuitive queries.

Cross-Browser Bug Resilience

Includes workarounds for inconsistencies in various IndexedDB implementations, ensuring stable behavior across all modern browsers, Electron, and Capacitor, as noted in the README.

High Performance Bulk Operations

Leverages optimized bulk methods like bulkPut() and bulkDelete() to maximize data throughput, minimizing overhead compared to native IndexedDB, per the performance section.

Full TypeScript Integration

Provides comprehensive TypeScript support with entity typing, enabling seamless integration into typed codebases, as shown in the React example with EntityTable.

Cons

Vendor Lock-in with Dexie Cloud

The optional Dexie Cloud add-on for sync and auth is proprietary, potentially creating dependency on Dexie's ecosystem for advanced features without easy migration paths.

Complex Schema Migrations

While Dexie.js simplifies versioning, IndexedDB's inherent schema update complexity requires careful handling of data migrations, which can be error-prone for large apps.

Limited to Browser Environments

Dexie.js is designed for client-side use; for server-side or Node.js applications, additional polyfills or alternative databases are necessary, limiting full-stack consistency.

Frequently Asked Questions

Quick Stats

Stars14,558
Forks711
Contributors0
Open Issues578
Last commit1 day ago
CreatedSince 2014

Tags

#database#offline-first#storage#offline#browser-storage#offline-storage#data-sync#pwa#typescript#web-apps#javascript#indexeddb#react-hooks#client-side-database#electron

Built With

J
JavaScript
T
TypeScript

Links & Resources

Website

Included in

JavaScript34.9kAngular10.0k
Auto-fetched 12 hours ago

Related Projects

localForagelocalForage

💾 Offline storage, improved. Wraps IndexedDB, WebSQL, or localStorage using a simple but powerful API.

Stars25,812
Forks1,288
Last commit2 years ago
js-cookiejs-cookie

A simple, lightweight JavaScript API for handling cookies, client-side.

Stars22,589
Forks2,043
Last commit17 hours ago
PouchDBPouchDB

:kangaroo: - PouchDB is a pocket-sized database.

Stars17,603
Forks1,507
Last commit1 day ago
store.jsstore.js

Cross-browser storage for all use cases, used across the web.

Stars13,984
Forks1,293
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub