WatermelonDB

active

by Nozbe · since 2018 · also known as Watermelon DB

Lazy-loading reactive database for React Native and React apps, built on SQLite.

relationalembedded libraryopen source (permissive)mature

Overview

WatermelonDB is an observable, lazily loaded database layer for React Native and web apps, built by Nozbe for their task manager. On mobile it stores data in SQLite through a native bridge (JSI on modern React Native), and on the web it falls back to LokiJS over IndexedDB. Records load only when a component needs them, so apps with tens of thousands of rows still start quickly. It ships a sync protocol (pull/push of changes since a timestamp) but leaves the server side to you. Releases have slowed since 0.28 in 2025.

Strengths & trade-offs

Strengths

  • +Lazy loading keeps React Native app start-up fast with large local datasets
  • +Observable queries re-render React components automatically
  • +SQLite under the hood on iOS and Android, accessed via JSI
  • +Simple, documented sync protocol that works with any backend

Trade-offs

  • −You must implement the sync server endpoints and conflict policy yourself
  • −Slow release cadence and a shrinking core maintainer pool
  • −Web adapter relies on LokiJS, which is itself unmaintained

Great for

  • +Offline-capable React Native productivity apps
  • +Apps with large local lists that must render instantly
  • +Custom sync to an existing REST backend

Think twice for

  • −Teams wanting managed, turnkey sync
  • −Web-first apps (the web adapter is the weak spot)
  • −Server-side storage

Capabilities

Native or official first-party support · 4 of 25 tracked

✓Transactions
✓Secondary indexes
✓Durable persistence
✓Offline sync
–Joins
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Compression
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
Limited ACID
Consistency
Eventual
Schema
Strict
Architecture
Embedded
Query languages
WatermelonDB Query API (Q)

Comfortable with tens of thousands of records per device thanks to lazy loading.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsJavaScript API
client languagesJavaScript, TypeScript

Alternatives to WatermelonDB

Compare all→
PowerSyncRelational23.3

Sync engine that keeps on-device SQLite in sync with Postgres, MongoDB, MySQL or SQL Server.

watermelondb vs powersync →
RxDBDocument20.2

Reactive local-first NoSQL database for JavaScript with pluggable storage and replication.

watermelondb vs rxdb →
Realm (Atlas Device SDK)Object25.2

Object-oriented mobile database whose MongoDB sync service is gone; the local engine survives as open source.

watermelondb vs realm →
ObjectBoxObject12.4

Fast on-device object database with built-in HNSW vector search and an optional commercial sync server.

watermelondb vs objectbox →
ElectricSQLRelational30.4

Read-path sync engine that streams partial replicas of Postgres to clients over plain HTTP.

watermelondb vs electricsql →
SQLiteRelational75.5

The in-process SQL engine that ships in every phone, browser and OS: one file, zero servers.

watermelondb vs sqlite →

WatermelonDB FAQ

What is WatermelonDB?

WatermelonDB is a relational database by Nozbe, first released in 2018. WatermelonDB is an observable, lazily loaded database layer for React Native and web apps, built by Nozbe for their task manager. On mobile it stores data in SQLite through a native bridge (JSI on modern React Native), and on the web it falls back to LokiJS over IndexedDB. Records load only when a component needs them, so apps with tens of thousands of rows still start quickly. It ships a sync protocol (pull/push of changes since a timestamp) but leaves the server side to you. Releases have slowed since 0.28 in 2025.

Is WatermelonDB open source?

Yes. WatermelonDB is open source. License: MIT License.

Does WatermelonDB support ACID transactions?

Partly. WatermelonDB offers limited ACID guarantees (for example, single-record or single-partition transactions), with eventual consistency.

Does WatermelonDB scale horizontally?

WatermelonDB does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run WatermelonDB?

You can self-host it and embed it in your application.

What is WatermelonDB best for?

WatermelonDB is a strong fit for offline-capable React Native productivity apps, apps with large local lists that must render instantly and custom sync to an existing REST backend. Think twice for teams wanting managed, turnkey sync.

What are the best alternatives to WatermelonDB?

Common alternatives to WatermelonDB include PowerSync, RxDB, Realm (Atlas Device SDK), ObjectBox and ElectricSQL. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is WatermelonDB?

WatermelonDB ranks #187 of 844 databases on the WhichDB Score (17.8/100), and #58 among relational databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.