An opinionated list of tools that provide offline-first functionality for your software.
Table of Contents
Software / Libraries
"A fast, local first, reactive Database for JavaScript Applications"
Maintenance Status: β Actively Maintained
π License: Apache 2.0, SSPL, proprietary
β Feature rich and "complete"
β Supports Full Text Search and Client Side Encryption (Premium)
β The author of RxDB has interesting articles about offline first which are worth reading even if you do not want to use RxDB.
β A bit over-complicated structure, may be overkill for small projects
β Even if you use the RxServer backend you still have to do a bit to make it work as its not "batteries included".
π΅ Pricing:
- Core Package: Free & Open Source (Apache 2.0, SSPL)
- Premium: Including Features like IndexedDB & SQLite Adapter, Encryption, Server Adapters for Koa & Fastify for native apps 300β¬-1800β¬ yearly
Last updated: 29.03.2025
"Dexie.js is a wrapper library for indexedDB - the standard database in the browser"
π License: Apache 2.0 (Client), Proprietary (Backend)
β Docs for usage with React, Svelte, Angular, Vue and Vanilla JS.
β The backend is not Open Source
π΅ Pricing:
- Hosted SaaS solution: 0.12ct/user/month (in 25 user packs at 3$)
- On Prem (self-hosted): 3495$ with five years of updates and 1 year support
- On Prem (self-hosted with source code access): 7995$ with five years of updates and 1 year support
Last updated: 28.03.2025
"SignalDB is a reactive, local-first JavaScript database designed for modern web applications. It combines signal-based reactivity with powerful local data management and real-time synchronization capabilities."
π License: MIT License
β Adapters for Angular, React, Solid, Svelte and Vue.js
β Examples for Replication with Backends like Supabase, Firebase, Appwrite etc.
π΅ Pricing: Free
"π Reactive & asynchronous database for powerful React and React Native apps β‘οΈ"
WatermelonDB uses LokiJS in the web and SQLite when used with NodeJS (like in electron apps or mobile apps)
π License: MIT License
β Lean yet thorough documentation
β React & React Native only
β You have to build your own backend. However there is documentation on how you should implement sync
π΅ Pricing: Free
"Sync little subsets of your Postgres data into local apps and services."
π License: Apache 2.0
β Framework Agnostic, Examples for React, Tanstack etc exist
β Cloud Hosting in Private Beta (Though self-hosting is possible)
β Supports E2E encryption but you need to do a bit of work yourself
π΅ Pricing:
- self-hosted: free
- cloud: unkown (still in private-beta)
"Fireproof is the vibe coding database that lets you skip the backend."
π License: Permissive License Stack (Apache 2.0 OR MIT License)
β React & SolidJS Tutorial
"Storage for private, distributed, offline-first applications."
π License: LGPL-3.0
"A local-first platform designed for privacy, ease of use, and no vendor lock-in"
π License: MIT License
β Supports E2E encryption
Note: Uses SQLite on all platforms. On the web via OPFS.
"The reactive data store for localβfirst apps."
π License: MIT License
π License: Apache 2.0
β Kinto Storage as a backend (Python 3.9+ & PostgreSQL)
"An open source cybersecurity protocol for syncing decentralized graph data."
π License: Triple Licensed (Zlib / MIT License / Apache 2.0)
"Simperium is a cross-platform data sync service."
β Used by Simplenote
β Closed Source backend
π΅ Pricing: Starts at 25$ for up to 250k requests/month
"π¦ - PouchDB is a pocket-sized database."
π License: Apache 2.0
β Create a database for each user
"Composable data framework for ambitious web applications."
π License: MIT License
"Realtime sync for any backend stack"
π License: Apache 2.0
β You have to build your own backend
"Peer-to-Peer Databases for the Decentralized Web"
π License: MIT License
"The Decentralized Operating System"
π License: MIT License
These tools are not actively maintained so it is not recommended to use them in new projects. However they might provide insight and inspiration for your new project.
"SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically."
π License: MIT License
"SQLSync is a collaborative offline-first wrapper around SQLite. It is designed to synchronize web application state between users, devices, and the edge."
π License: Apache 2.0
"turtleDB is a JavaScript framework and in-browser database for developers to build offline-first, collaborative web applications. It provides a developer-friendly API to access an in-browser database built on top of IndexedDB."
</> Github
π License: MIT License
Interest articles regarding the topic offline first you may want to read.