Skip to content

An opinionated list of tools that provide offline-first functionality for your software.

Notifications You must be signed in to change notification settings

yetke/offline-first

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 

Repository files navigation

Offline First

An opinionated list of tools that provide offline-first functionality for your software.

Table of Contents

Software / Libraries

Interesting Articles

RxDB

"A fast, local first, reactive Database for JavaScript Applications"

πŸ”— Website | </> Github

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.

⚠️ Be aware that for many essential features like IndexedDB Adapter (better performance in Web Applications), SQLite Adapter (better performance in Electron / Mobile applications) you need to pay for RxDB Premium

❌ 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

"Dexie.js is a wrapper library for indexedDB - the standard database in the browser"

πŸ”— Website | </> Github

πŸ“‹ License: Apache 2.0 (Client), Proprietary (Backend)

βœ… Docs for usage with React, Svelte, Angular, Vue and Vanilla JS.

⚠️ Even though the docs seem complete, navigating through it can be a hassle as the Table of Contents is not well-structured, documentation, API reference and Roadmap are not differentiated and there is no search functionality. Anyway, this is a good starting point if you want to use Dexie.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

"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."

πŸ”— Website | </> Github

πŸ“‹ License: MIT License

βœ… Adapters for Angular, React, Solid, Svelte and Vue.js

βœ… Examples for Replication with Backends like Supabase, Firebase, Appwrite etc.

πŸ’΅ Pricing: Free

Watermelondb

"πŸ‰ 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)

πŸ”— Website | </> Github

πŸ“‹ License: MIT License

βœ… Lean yet thorough documentation

⚠️ You may need to write advanced / direct db queries twice if you use both backends (SQLite on React Native and LokiJS on the web).

❌ React & React Native only

❌ You have to build your own backend. However there is documentation on how you should implement sync

πŸ’΅ Pricing: Free

Electric-SQL

"Sync little subsets of your Postgres data into local apps and services."

πŸ”— Website |</> Github

πŸ“‹ 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

⚠️ When self-hosting you need to deploy a proxy in front of ElectricSQL for auth and PostgreSQL for storage.

πŸ’΅ Pricing:

  • self-hosted: free
  • cloud: unkown (still in private-beta)

Fireproof

"Fireproof is the vibe coding database that lets you skip the backend."

πŸ”— Website | </> Github

πŸ“‹ License: Permissive License Stack (Apache 2.0 OR MIT License)

βœ… React & SolidJS Tutorial

Earthstar

"Storage for private, distributed, offline-first applications."

πŸ”— Website | </> Github

πŸ“‹ License: LGPL-3.0

⚠️ Beta Software (last check: 03.04.2025)

Evolu

"A local-first platform designed for privacy, ease of use, and no vendor lock-in"

πŸ”— Website | </> Github

πŸ“‹ License: MIT License

βœ… Supports E2E encryption

⚠️ The codebase is currently being rewritten (last check: 02.04.2025)

Note: Uses SQLite on all platforms. On the web via OPFS.

Tinybase

"The reactive data store for local‑first apps."

πŸ”— Website | </> Github

πŸ“‹ License: MIT License

KintoJS

πŸ”— Website | </> Github

πŸ“‹ License: Apache 2.0

βœ… Kinto Storage as a backend (Python 3.9+ & PostgreSQL)

Gun.eco

"An open source cybersecurity protocol for syncing decentralized graph data."

πŸ”— Website | </> Github

πŸ“‹ License: Triple Licensed (Zlib / MIT License / Apache 2.0)

Simperium

"Simperium is a cross-platform data sync service."

πŸ”— Website | Github

βœ… Used by Simplenote

⚠️ Seems a bit abandoned

❌ Closed Source backend

πŸ’΅ Pricing: Starts at 25$ for up to 250k requests/month

Pouchdb

"🦘 - PouchDB is a pocket-sized database."

πŸ”— Website | </> Github

πŸ“‹ License: Apache 2.0

βœ… Create a database for each user

⚠️ Syncs/Stores the entire revision history locally

Orbitjs

"Composable data framework for ambitious web applications."

πŸ”— Website | </> Github

πŸ“‹ License: MIT License

⚠️ Maintenance Status: unknown / not actively maintained

Replicache

"Realtime sync for any backend stack"

πŸ”— Website | </> Source

πŸ“‹ License: Apache 2.0

⚠️ The development is in "maintenance mode".

❌ You have to build your own backend

Orbitdb

"Peer-to-Peer Databases for the Decentralized Web"

πŸ”— Website | </> Github

πŸ“‹ License: MIT License

DXOS

"The Decentralized Operating System"

πŸ”— Website | </> Github

πŸ“‹ License: MIT License

⚠️ Stability and Security is not guarenteed as DXOS is currently in a "preview state". - (last checked: 02.04.2025)


Not actively maintained tools

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

"SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically."

πŸ”— Website | </> Github

πŸ“‹ License: MIT License

SQLSync

"SQLSync is a collaborative offline-first wrapper around SQLite. It is designed to synchronize web application state between users, devices, and the edge."

πŸ”— Website | </> Github

πŸ“‹ License: Apache 2.0

turtleDB

"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

Interesting Articles

Interest articles regarding the topic offline first you may want to read.

About

An opinionated list of tools that provide offline-first functionality for your software.

Topics

Resources

Stars

Watchers

Forks