Key points
- Ditto stores JSON documents as CRDTs, queries them with DQL, and syncs directly between devices over Bluetooth LE, LAN, AWDL, Wi-Fi Aware and Wi-Fi, relaying across devices. Ditto Server, formerly Big Peer, is its cloud side. The SDK is proprietary.
- Couchbase Lite stores JSON documents with SQL++ queries and syncs with Couchbase Server or Capella through Sync Gateway or App Services. Its Multipeer replicator forms small meshes over Wi-Fi and, since 4.1, Bluetooth LE. It ships as Community and Enterprise editions.
- Ditto merges at field level; Couchbase Lite resolves document conflicts by rule, with custom resolvers available.
- Ditto lists more client platforms, including Flutter and React Native. Couchbase is the natural choice where Couchbase Server or Capella already runs.
Ditto vs Couchbase Lite comparison table
| Ditto | Couchbase Lite | |
|---|---|---|
| Data model | JSON documents stored as CRDTs | JSON documents with revisions |
| Queries | DQL, a SQL-like language | SQL++ and a query builder |
| Device-to-device transports | Bluetooth LE, LAN, AWDL, Wi-Fi Aware, Wi-Fi | Multipeer: Wi-Fi (devices on one network) and Bluetooth LE since 4.1; active-passive over WebSockets |
| Relaying across devices | Yes, multi-hop | A self-organising mesh, aimed at small topologies |
| Server side | Ditto Server (formerly Big Peer); hosted, bring-your-own-cloud or self-managed on Enterprise | Sync Gateway or Capella App Services |
| Conflict handling | CRDT merge under causal consistency, field-level deltas | Default: deletion wins, then latest local timestamp; custom resolvers |
| Security between devices | Mutual TLS 1.3 with certificates from a developer-controlled authority, or an offline shared key | TLS with certificate-only authentication for Multipeer |
| Client platforms (October 2026) | Swift, Kotlin, Flutter, React Native, JavaScript, .NET and MAUI, C++, Java, Rust; Python and Go in preview | Android, iOS, .NET, C; React Native plugin; community JavaScript |
| Licensing (October 2026) | Proprietary SDK under the Ditto Binary License | Community Edition source Apache 2.0; Enterprise Edition licensed separately |
| Published pricing (October 2026) | Free tier; Pro and Enterprise on request | Capella App Services billed hourly by node size plus data processed |
Device-to-device sync in Ditto and Couchbase Lite
Ditto treats device-to-device sync as the core of the product. Its documentation describes an embedded database with built-in mesh connectivity to other Ditto devices, syncing over local peer-to-peer connections (Bluetooth, LAN, AWDL, Wi-Fi Aware and Wi-Fi) as well as through Ditto Server. Its pricing page says Ditto relays data across offline devices to sync over large distances, and that peer-to-peer sync needs no Wi-Fi network, servers or cloud.
Couchbase Lite offers two peer-to-peer modes. The Multipeer replicator, for small mesh topologies, lets peers in one group discover each other and form a self-organising mesh. Its Wi-Fi transport, available since 3.3, requires peers to be on the same Wi-Fi network, and Bluetooth LE was added in 4.1. The active-passive mode has one device run a listener that others connect to over WebSockets. Couchbase’s API reference marks that listener class as Enterprise Edition only.
Conflict resolution in Ditto and Couchbase Lite
Ditto stores documents as CRDTs. Its documentation says all copies eventually converge to the same state after synchronisation, following a causal consistency model, and that it can sync only the relevant documents or even specific fields to each peer.
Couchbase Lite resolves conflicts per document. By default a deleted document always wins over an update, and otherwise the change with the latest timestamp wins, with timestamps local to each device. Since 2.6, apps can supply custom conflict resolvers. Conflict handling works the same way for peer-to-peer sync as for server replication. How are sync conflicts resolved? covers the trade-offs.
Device authentication in Ditto and Couchbase Lite
Ditto documents three authentication modes. In the two online modes, every new device must first connect to Ditto Server to authenticate before it can join the mesh. In Offline Shared Key mode, every device is configured with the same secret, which Ditto recommends only where all devices and users are inherently trusted. Peer connections use mutual TLS 1.3 with certificates from a developer-controlled certificate authority.
Couchbase Lite’s Multipeer replicator supports only certificate-based authentication over TLS, and the active-passive listener supports TLS with optional client authentication.
Ditto and Couchbase Lite pricing and licensing
Ditto and Couchbase Lite pricing and licensing as of October 2026:
- Ditto lists a Free tier with 10 cloud device connections and 2 GB of included storage, a Pro tier with 1,000 or more cloud device connections and 50 GB, and an Enterprise tier, with Pro and Enterprise priced on request. The SDK is proprietary: its npm package ships under the Ditto Binary License.
- Couchbase Lite ships Community and Enterprise editions; the iOS repository states that its source is released under the Apache 2.0 license. Capella App Services is billed by the clock hour by node size, with the first 1 GiB of data processed each hour free. Couchbase’s pricing and editions pages did not publish figures that could be checked for this article.
Choosing between Ditto and Couchbase Lite
- Choose Ditto if devices must sync with each other first and the server second, across Bluetooth LE and peer-to-peer Wi-Fi with relaying, and if you build on Flutter, React Native or several native platforms.
- Choose Couchbase Lite if you already run Couchbase Server or Capella, need SQL++ queries and full-text search on the device (with vector search in Enterprise Edition), and your peer-to-peer groups are small.
Either way, confirm the edition or tier your peer-to-peer features need with the vendor before you design around them.
Offline Protocol alongside Ditto or Couchbase Lite
Ditto and Couchbase Lite are databases. Offline Protocol is not: it is an SDK for coordination between nearby devices, with messages, service calls and replicated documents of maps, lists, text and counters that merge by fixed rules, encrypted end to end with MLS. It has no query engine and does not sync a backend database. Apps that need a local database can keep Ditto or Couchbase Lite for data and use Offline Protocol for handoffs and service calls between devices. Its mesh SDK is free under AGPL-3.0-only when an app meets the license’s obligations, with a commercial license for closed-source and App Store apps.