For local first data storage, the strongest matches are orbitdb/orbit-db (OrbitDB is a peer-to-peer decentralized database engine built on), orbitdb/orbitdb (OrbitDB is a peer-to-peer decentralized database engine built on) and amark/gun (Gun is an offline-first decentralized graph database and synchronization). yjs/yjs and josephg/sharejs round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore the best open-source local-first data storage repositories, ranked by stars and GitHub activity, to find the right fit.
Orbit DB is a decentralized NoSQL database that utilizes conflict-free replicated data types to ensure eventual consistency across a network of nodes. It functions as a peer-to-peer data store that uses IPFS for content-addressing and synchronization, allowing for the maintenance of application state without a central server or authority. The system is built upon a cryptographically verifiable, immutable operation log, which serves as the foundation for custom decentralized data models. This architecture enables the implementation of various data storage patterns, including JSON document stor
OrbitDB is a peer-to-peer decentralized database engine built on CRDTs and IPFS, making it an ideal local-first synchronization solution for distributed applications.
OrbitDB is a decentralized data storage system that enables the creation of serverless databases residing across a network of peers. It functions as a peer-to-peer database that integrates with a content-addressed storage layer to distribute and replicate data without a central server. The system utilizes conflict-free replicated data types to ensure eventual consistency and state convergence across distributed nodes. It maintains an immutable record of updates using a directed acyclic graph to preserve causal ordering and cryptographic integrity. Access is managed through a decentralized ide
OrbitDB is a peer-to-peer decentralized database engine built on content-addressed storage and CRDTs, perfectly matching your need for local-first, offline-capable synchronization across distributed nodes.
Gun is a decentralized graph database and synchronization engine designed for real-time, peer-to-peer data management. It functions as a JavaScript library that enables applications to maintain consistent state across distributed nodes without relying on a central server. By utilizing conflict-free replicated data types and a gossip protocol, the system ensures that data updates propagate across the network and reconcile automatically. The project distinguishes itself through a focus on decentralized identity and security, utilizing public-key infrastructure to authenticate users and sign dat
Gun is an offline-first decentralized graph database and synchronization engine that supports peer-to-peer data management, CRDTs, and cryptographic encryption, missing only some advanced reactive query features out of the box.
Yjs is a CRDT framework and real-time state synchronization engine providing shared data types for collaborative software. It functions as a shared data type library of collaborative maps, arrays, and text structures that converge automatically across distributed clients, serving as a local-first data store and a collaborative editor backend. The system distinguishes itself through a synchronization engine that encodes document changes into commutative binary updates. It employs state-vector based differencing to transmit only missing incremental updates between peers and uses relative-positi
Yjs is a robust CRDT-based synchronization framework for local-first and collaborative applications, though it functions more as a shared data type library rather than a standalone database engine.
ShareJS is a collaborative document database and synchronization engine designed for real-time shared state management. It provides an operational transform sync engine to enable simultaneous editing of plain-text and JSON data, and a RESTful synchronization API for managing document states via HTTP. The system features an offline-first data sync layer that queues local modifications while disconnected and automatically pushes edits upon reconnection. It also includes a middleware access control layer that intercepts database requests to enforce security policies and perform request rewriting
ShareJS is a collaborative document database and synchronization engine that features offline-first persistence and operational transformation sync, though it relies on client-server synchronization rather than peer-to-peer decentralization.
Livestore is a reactive state management framework that utilizes a local SQLite database to store and synchronize application data. It provides an event-sourced state store that processes typed events through materializer functions to derive and persist application state. The framework implements offline-first data synchronization using a push-pull engine and append-only event logs to maintain consistency between clients and servers. It includes a real-time presence system for tracking user activity and shared session status across connected clients. The system covers a broad capability surf
Livestore is a reactive state management framework and local SQLite-backed sync engine that supports offline-first persistence and push-pull synchronization, though it relies on a central server rather than pure peer-to-peer distribution.
Automerge is a distributed state synchronization engine and library for conflict-free replicated data types. It enables multiple nodes to perform concurrent updates to a shared dataset while guaranteeing that all replicas eventually converge to the same state. The project provides a high-performance implementation written in Rust to manage state merging and synchronization. It employs a byte-compressed synchronization protocol to transmit minimal delta updates between peers, facilitating data consistency in peer-to-peer and real-time collaborative environments. The system covers broad capabi
Automerge is a CRDT-based distributed state synchronization engine that handles concurrent updates and data convergence for peer-to-peer and offline environments, though it functions primarily as a library rather than a full database engine.
Jazz is a local-first relational database and synchronization framework designed for offline-capable applications. It functions as a reactive state management system that treats database records as the primary source of truth, automatically updating user interfaces in real time as underlying data changes. The project distinguishes itself through a collaborative data synchronization model that utilizes row-level versioning to track branching edit histories. It implements a security engine based on identity-claim row security, which enforces granular permissions on individual records, and suppo
Jazz is a local-first relational database and synchronization framework featuring offline-first persistence, reactive state management, and real-time collaboration, though it focuses on application state rather than general peer-to-peer syncing.
PouchDB is a JavaScript NoSQL document database that runs directly in the browser. It serves as an offline-first data store that allows applications to save state and user data locally using persistent storage. The database is compatible with CouchDB, implementing its API to enable synchronization between browser environments and remote servers. This allows for cross-device data syncing and the development of local-first software that operates without a constant internet connection. The project covers data storage and synchronization capabilities, including the ability to migrate database sc
PouchDB is a JavaScript NoSQL document database designed for offline-first persistence and browser-based storage that synchronizes via CouchDB, though it relies on server replication rather than direct peer-to-peer sync.
WatermelonDB is an offline-first data synchronization engine and reactive database library designed for mobile and web applications. It provides a persistent storage layer backed by SQLite, enabling applications to maintain full functionality and data consistency while operating without an internet connection. The framework distinguishes itself through a reactive data binding system that automatically updates user interface components whenever underlying database records change. It utilizes schema-driven model mapping to generate type-safe interfaces and employs lazy object materialization to
WatermelonDB is an offline-first reactive database library tailored for mobile and web applications, but it relies on centralized backend synchronization rather than peer-to-peer or decentralized sync.
Loro is a conflict-free replicated data type (CRDT) framework and collaborative state engine designed for building real-time collaborative applications. It provides a distributed data synchronizer that enables multiple users to edit shared documents and complex nested structures—such as maps, lists, trees, and counters—with automatic state convergence without requiring a central server. The project distinguishes itself through a versioned document store that supports branching, forking, and merging via a directed acyclic graph of causal operation history. It enables advanced version control c
Loro is a CRDT-based framework and collaborative state engine providing peer-to-peer synchronization and offline-first operation for local-first applications, though it focuses on document state rather than a general database engine.
This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a robust framework for managing application state by synchronizing data across browsers, mobile devices, and server-side runtimes. By treating local storage as the primary source of truth, it enables applications to remain functional without network connectivity, automatically reconciling changes with remote backends once a connection is restored. The database distinguishes itself through a modular architecture that supports cross-environment synchronization and high-performance d
This JavaScript NoSQL database engine supports offline-first application state and multi-device sync, though it relies on standard replication backends rather than native peer-to-peer synchronization.
cr-sqlite is a multi-master database replication system that uses conflict-free replicated data types to ensure eventual consistency across distributed nodes. It provides the core capabilities for offline-first data synchronization, allowing multiple database instances to merge concurrent updates and reach a consistent state. The project distinguishes itself through a combination of CRDT-based data replication and a WASM-based database engine, enabling full SQL execution and state persistence within web browsers. It supports peer-to-peer replication and cross-tab synchronization, utilizing ca
This SQLite extension provides CRDT-based multi-master replication and offline-first capabilities, making it a fitting engine for local-first synchronization despite requiring integration into a larger application architecture.
Epicenter is a local-first knowledge management system and data orchestrator designed to structure information generated by large language models into validated schemas. It functions as a storage architecture that persists application data in human-readable files and databases to ensure user ownership and portability. The system distinguishes itself by projecting language model outputs into structured, schema-validated tables and utilizing conflict-free replicated data types to synchronize application state across multiple devices without a central server. This allows for offline access and c
Epicenter is a local-first knowledge management system and application framework that utilizes CRDTs and file-based storage for offline-first multi-device synchronization, missing only built-in encrypted storage from the requested feature set.
Electric is a Postgres data synchronization engine and replication proxy designed to enable local-first software. It replicates data from Postgres databases to client-side stores in real time using logical replication, allowing applications to maintain a local embedded database for offline access and low-latency updates. The system distinguishes itself by using shapes to filter and authorize specific subsets of database rows and columns before streaming them to clients or edge workers. It further supports multi-user collaboration by integrating a conflict-free replicated data type framework t
Electric is a local-first Postgres synchronization engine that replicates data to client-side stores for offline access and real-time updates, though it relies on a central Postgres server rather than pure peer-to-peer decentralization.
The vibe coding database runs in the browser, fits in the context window, and syncs anywhere.
Fireproof is a browser-based database engine that provides reactive data management and cloud or peer synchronization, making it a good fit for local-first application development.
TinyBase is a reactive data store and in-memory relational database designed for client-side state persistence. It serves as a local-first sync engine that merges distributed state using conflict-free replicated data types and logical clocks to ensure deterministic data convergence. The project features a schema validation library that converts external definitions from tools like Zod, Yup, and TypeBox into type-safe store definitions. It provides an infrastructure for real-time collaborative editing, utilizing synchronization with Automerge, Yjs, and PartyKit to maintain consistent state acr
TinyBase is a reactive client-side store and local-first sync engine that supports conflict-free data replication and real-time collaboration, fitting your search well despite lacking a built-in encrypted storage feature.
| Dépôt | Stars | Langage | Licence | Dernier push |
|---|---|---|---|---|
| orbitdb/orbit-db | 8.8K | JavaScript | MIT | |
| orbitdb/orbitdb | 8.7K | JavaScript | mit | |
| amark/gun | 19.1K | JavaScript | NOASSERTION | |
| yjs/yjs | 22.1K | JavaScript | NOASSERTION | |
| josephg/sharejs | 5K | JavaScript | NOASSERTION | |
| livestorejs/livestore | 3.5K | TypeScript | apache-2.0 | |
| automerge/automerge | 6.4K | JavaScript | MIT | |
| garden-co/jazz | 2.5K | TypeScript | MIT | |
| pouchdb/pouchdb | 17.6K | JavaScript | Apache-2.0 | |
| nozbe/watermelondb | 11.7K | JavaScript | MIT |