Skip to main content

max / synckit-client

10.6 KB · 143 lines History Blame Raw
1 # SyncKit Client SDK -- Competitive Analysis
2
3 Last updated: 2026-04-10
4
5 ## Positioning
6
7 SyncKit is an E2E encrypted, Rust-native, offline-first sync SDK for indie desktop and mobile apps. The server (hosted on MNW) stores only encrypted blobs -- zero-knowledge by design. Bundled with OTA updates and device management. Consumers: GoingsOn, Balanced Breakfast, audiofiles (all Tauri apps).
8
9 The key differentiators are server-zero-knowledge encryption (XChaCha20-Poly1305 + Argon2id, keys never leave the device), opaque-blob storage (bring-your-own-schema, no server-side migrations), and the bundled OTA + device management layer that no sync competitor offers. Pricing is bundled with MNW creator tiers ($10-40/mo), not per-read/write metered.
10
11 ## Pricing Comparison
12
13 | Tool | Price | Model |
14 |------|-------|-------|
15 | **SyncKit** | $10-40/mo (bundled) | Included in MNW creator tier |
16 | Firebase Firestore | Pay-per-use | $0.18/100K reads+writes, $0.26/GB |
17 | Supabase | $0-$599/mo | Freemium + usage overages |
18 | PowerSync | $0-$599/mo | Usage-based (GB synced) |
19 | ElectricSQL | Pay-per-write | $1/M writes, reads free |
20 | Turso | $0-$417/mo | Storage-based tiers |
21 | Convex | $0-$25/member/mo | Freemium + usage overages |
22 | Ditto | Enterprise (custom) | Sales-driven |
23 | Couchbase Mobile | Enterprise (~25K+ EUR/yr) | License-based |
24 | Etebase | Free (self-host) | Source-available, hosted beta |
25
26 ## Feature Matrix
27
28 | Feature | SyncKit | Firebase | Supabase | PowerSync | ElectricSQL | Ditto | Etebase |
29 |---------|:-------:|:--------:|:--------:|:---------:|:-----------:|:-----:|:-------:|
30 | E2E encrypted | Y | N | N | N | N | N | Y |
31 | Server-zero-knowledge | Y | N | N | N | N | N | Y |
32 | Rust SDK (native) | Y | N | N | Alpha | Y | Y | Y |
33 | Tauri integration | Y | N | N | Alpha | N | N | N |
34 | Offline-first | Y | Partial | N | Y | Partial | Y | Y |
35 | Bring-your-own-schema | Y | N | N | N | N | N | Partial |
36 | OTA updates | Y | N | N | N | N | N | N |
37 | Device management | Y | N | N | N | N | N | N |
38 | OS keychain storage | Y | N | N | N | N | N | N |
39 | Blob/file sync | Y | Y | Y | N | N | N | Y |
40 | Self-hostable | Y | N | Y | Y | Y | Y | Y |
41 | Real-time push | N | Y | Y | Y | Y | Y | N |
42 | P2P sync (no server) | N | N | N | N | N | Y | N |
43 | CRDT conflict resolution | N | N | N | N | N | Y | N |
44 | Rich query engine | N | Y | Y | Y | Y | Y | N |
45
46 ## Competitor Deep Dives
47
48 ### 1. Firebase (Google)
49
50 Managed BaaS with Realtime Database and Firestore. Massive ecosystem (Auth, Functions, Hosting, Analytics). Generous free tier. Near-instant real-time push via persistent connections. No native Rust SDK (community crates are server-side only, not offline-capable).
51
52 **What SyncKit lacks:** real-time push subscriptions, multi-platform mobile SDKs, hosted auth, serverless functions, web dashboard. **What Firebase lacks:** E2E encryption, Rust SDK, Tauri support, offline desktop sync, OTA updates, device management, data portability (complete vendor lock-in, no self-hosting).
53
54 ### 2. Supabase
55
56 Open-source Firebase alternative on PostgreSQL. Full SQL power, RLS for access control, self-hostable. Growing ecosystem. Realtime via Postgres CDC. No offline-first without PowerSync add-on.
57
58 **What SyncKit lacks:** SQL query engine, built-in auth, edge functions, web dashboard, large community. **What Supabase lacks:** E2E encryption, offline-first (requires PowerSync add-on), Rust SDK, Tauri support, OTA updates, device management.
59
60 ### 3. PowerSync -- Primary Threat
61
62 Offline-first sync layer between your existing database and client-side SQLite. **Released a Tauri SDK (alpha, March 2026)** built on a Rust SDK. Works with Postgres, MongoDB, MySQL, SQL Server. Self-hostable Open Edition.
63
64 **What SyncKit lacks:** multi-database source support, client-side SQL queries, partial replication (sync rules), larger team and community. **What PowerSync lacks:** E2E encryption (sync service sees all data), OTA updates, device management, blob/file sync, OS keychain integration. Write-path goes directly to your backend -- PowerSync does not handle write conflicts.
65
66 PowerSync is the most direct competitor. If they add encryption, they become serious competition. Their Tauri SDK being alpha-quality is a window.
67
68 ### 4. ElectricSQL
69
70 Postgres CDC engine streaming "shapes" (filtered table subsets) to clients. Read-path only -- writes go through your own API. Open-source (Apache 2.0). Innovative pricing: writes cost money, reads/fan-out are free and unlimited. Rust client available.
71
72 **What SyncKit lacks:** read-path fan-out, per-shape subscriptions, 10-language client support. **What ElectricSQL lacks:** E2E encryption, offline-first writes (no local write queue built in), OTA updates, device management, conflict resolution (your problem), blob sync.
73
74 ### 5. Ditto
75
76 Enterprise P2P sync with Bluetooth/WiFi Direct mesh networking. Rust core. CRDT-based automatic conflict resolution. $82M raised (March 2025). Targets airlines, military, retail.
77
78 **What SyncKit lacks:** P2P mesh sync, CRDT conflict resolution, enterprise support. **What Ditto lacks:** E2E application-layer encryption, indie pricing (enterprise sales only), OTA updates, bring-your-own-schema (CRDTs need structure).
79
80 ### 6. Couchbase Lite + Sync Gateway
81
82 Enterprise mobile database with bidirectional sync. Battle-tested in large deployments. Gained momentum from MongoDB Realm shutdown (Sept 2025). Configurable conflict handlers. P2P sync between Couchbase Lite instances.
83
84 **What SyncKit lacks:** P2P sync, rich on-device query engine, enterprise track record. **What Couchbase lacks:** E2E encryption, indie pricing (~25K EUR/yr), Rust SDK (experimental C bindings only), simplicity (multi-component architecture), OTA updates.
85
86 ### 7. Etebase -- Philosophical Peer
87
88 The only other E2E encrypted sync SDK with a Rust library. Open-source server, self-hostable. SDKs for Rust, JS, Java/Kotlin, Python, C, C#. Used by EteSync (contacts/calendar sync).
89
90 **What SyncKit lacks:** broader language coverage (6 languages vs 1). **What Etebase lacks:** Tauri integration, OTA updates, device management, OS keychain, blob support via presigned URLs, commercial backing, community momentum (very small team, unclear trajectory).
91
92 ### 8. Realm / Atlas Device Sync (MongoDB) -- Shut Down
93
94 End-of-life as of September 30, 2025. MongoDB deprecated all Atlas Device SDKs. Developers displaced into Couchbase, Ditto, PowerSync, and ObjectBox. The shutdown created a significant gap in the offline-first sync market.
95
96 ### 9. Others
97
98 **Turso:** Edge SQLite replication. Read replicas only, writes go to primary. Cheap ($5/mo) but not a multi-device sync solution -- no bidirectional sync, no offline writes.
99
100 **Convex:** Reactive backend with automatic query subscriptions. No offline support (requires internet). Recently open-sourced (BSL, converts to Apache 2.0 after 3 years). Rust client available but secondary to TypeScript.
101
102 **CouchDB/PouchDB:** Document-oriented database with built-in sync protocol. Offline-first, conflict handling via revision trees. No E2E encryption. Mature but aging. JavaScript-focused.
103
104 **Syncthing:** P2P file sync. E2E encrypted, no central server. Designed for folder/file sync, not structured app data. No changelog-based sync, no SDK API, no conflict resolution for structured data.
105
106 **CRDT libraries (Automerge, Yjs, Loro):** Building blocks for conflict-free merge, not sync services. Handle data structure merging; bring-your-own transport/storage/auth. Incompatible with SyncKit's zero-knowledge model (server cannot merge what it cannot read).
107
108 ## What We Offer That Competitors Don't
109
110 - **Server-zero-knowledge** -- the server stores only encrypted blobs. No data breaches because there is no data to breach. Compliance-friendly (GDPR, NIS2).
111 - **Bring-your-own-schema** -- table names, row IDs, and data shapes are opaque to the server. No server-side migrations when your app schema changes.
112 - **Bundled OTA updates** -- Tauri-compatible auto-update protocol. No competitor offers sync + OTA in one SDK.
113 - **Bundled device management** -- register, list, deregister devices. Track sync state per device.
114 - **OS keychain integration** -- encryption keys stored in macOS Keychain, Linux Secret Service, or Windows Credential Manager. Key material never touches disk.
115 - **Minimal blob overhead** -- binary files encrypted with only 40 bytes overhead (24-byte nonce + 16-byte auth tag). No base64 expansion.
116 - **Key zeroization** -- `ZeroizeOnDrop` on all key material. No key residue in memory after use.
117 - **Flat pricing** -- included in MNW creator tier. No per-read/write metering, no surprise bills.
118
119 ## Market Tailwinds
120
121 - **MongoDB Realm shutdown (Sept 2025)** displaced developers seeking offline-first sync alternatives
122 - **Tauri adoption growing ~55% YoY**, creating demand for Rust-native backends
123 - **Regulatory pressure (GDPR, NIS2)** pushing toward E2E encryption and data minimization
124 - **Local-first movement** gaining mainstream traction (Notion, Linear, Figma adopting offline-first)
125 - **PowerSync Tauri SDK is alpha** -- their Rust/Tauri story is immature, giving SyncKit a window
126
127 ## Target Users
128
129 - Indie developers building Tauri desktop apps who need cloud sync without running a backend
130 - Developers who prioritize user privacy and want zero-knowledge sync by default
131 - Small teams shipping cross-platform apps (macOS/Windows/Linux) that need offline-first data
132 - Anyone displaced from MongoDB Realm looking for a simpler, encrypted alternative
133
134 ## Gaps and Potential Roadmap Items
135
136 Based on what competitors offer that SyncKit does not:
137
138 - **Real-time push notifications** -- Firebase/Supabase/Convex push changes instantly. SyncKit is pull-based (clients poll). A lightweight SSE channel for "something changed, pull now" would close this gap without compromising E2E encryption (the notification carries no data, just a signal).
139 - **Selective sync / sync rules** -- PowerSync and ElectricSQL let clients sync subsets of data. SyncKit syncs the full changelog. For apps with large datasets, filtered sync (by device, by date range, by collection) would reduce bandwidth and latency.
140 - **Conflict resolution helpers** -- Ditto and Couchbase offer configurable merge strategies. SyncKit leaves conflict resolution to the client. A toolkit of common strategies (LWW, field-level merge, custom resolver callback) in the SDK would reduce boilerplate.
141 - **Web client (WASM)** -- every major competitor has a JavaScript/TypeScript SDK. A WASM-compiled SyncKit client would open the web platform. Low priority (current consumers are all desktop), but relevant if any consumer app ships a web companion.
142 - **Multi-language SDKs** -- Etebase covers 6 languages, PowerSync covers 10+. SyncKit is Rust-only. A C FFI layer would enable bindings for Swift, Kotlin, Python, and JS. Only worth doing if non-Tauri consumers appear.
143