- Home
- Mobile Databases
- WatermelonDB
WatermelonDB
What it is
WatermelonDB is a free, MIT-licensed reactive database framework for React and React Native applications. It is designed for offline-first apps that synchronize local data with a remote database. Records load lazily, while queries run directly on SQLite on a separate native thread. The project describes a target scale from hundreds to tens of thousands of records. Changes automatically re-render dependent UI components. WatermelonDB provides synchronization primitives and a built-in adapter for backend endpoints that follow its sync protocol, but developers must supply the backend. Documented storage uses SQLite for React Native and Node.js, and LokiJS for web. Optional RxJS and JavaScript APIs support additional integration patterns. Mobile support includes iOS and Android; React Native Windows support is experimental, requires JSI, and lacks Turbo Sync. Sync documentation notes that pushes can fail after remote changes and pushed changes may reappear on the next sync. The project invites contributions and issue reports, with Stack Overflow community help.
For and against
For
- Offline-first local database design
- Reactive UI updates from record changes
- SQLite queries on a native thread
- Built-in sync adapter and primitives
- MIT-licensed and free
Against
- Requires your own synchronization backend
- Windows support is experimental
- Windows lacks Turbo Sync
- Sync has documented edge cases
The verdict
WatermelonDB provides local, reactive storage and synchronization tools for React ecosystems. Developers should account for backend responsibilities, experimental Windows support, and the documented sync edge cases.
Who it suits
WatermelonDB suits React and React Native developers building offline-first applications with bidirectional synchronization. It is appropriate for teams able to provide and secure their own synchronization backend.
Plans and prices
WatermelonDB
Open-source database framework · MIT license
Read 7 Oct 2026 · watermelondb.dev
On the record
- Backend requirement
- WatermelonDB is a local database, so users need to provide their own backend for synchronization.watermelondb.dev · read 7 Oct 2026
- Integrations
- The docs describe React and React Native usage, an optional RxJS API, and a JavaScript API for other UI frameworks.watermelondb.dev · read 7 Oct 2026
- Known sync limitations
- The docs note that a push can fail if a record changes remotely between pull and push, and that pushed changes may be pulled again on the next sync.watermelondb.dev · read 7 Oct 2026
- License and maintainer
- WatermelonDB is MIT licensed and names Radek Pietruszewski as its main author and maintainer.watermelondb.dev · read 7 Oct 2026
- Offline first
- WatermelonDB is designed for offline first use and synchronization with a remote database.watermelondb.dev · read 7 Oct 2026
- Performance
- It lazily loads records and runs queries directly on SQLite on a separate native thread.watermelondb.dev · read 7 Oct 2026
- Product
- WatermelonDB is a reactive database framework for React and React Native applications.watermelondb.dev · read 7 Oct 2026
- Reactive UI
- Changes to records automatically re-render the UI components that depend on them.watermelondb.dev · read 7 Oct 2026
- Scale
- The project describes its target scale as hundreds to tens of thousands of records.watermelondb.dev · read 7 Oct 2026
- Security guidance
- The sync backend guide says to whitelist acceptable collection and column names and validate record IDs and permissions.watermelondb.dev · read 7 Oct 2026
- Storage adapters
- The setup guide uses SQLite for React Native and Node.js, and LokiJS for web.watermelondb.dev · read 7 Oct 2026
- Support and contribution
- The project invites users to open issues and contribute, and its docs link to Stack Overflow for community help.watermelondb.dev · read 7 Oct 2026
- Sync support
- It provides sync primitives and a built-in sync adapter that works with backend endpoints following its sync protocol.watermelondb.dev · read 7 Oct 2026
- Windows limits
- React Native Windows support is experimental, requires JSI, and does not implement Turbo Sync.watermelondb.dev · read 7 Oct 2026