Syncular - Offline-first SQL sync with TypeScript and Rust cores
Show HN: Syncular – offline-first SQL sync with TypeScript and Rust cores
Syncular is an offline-first sync framework for TypeScript that keeps a real local SQLite database on the client (using OPFS in browsers) and Postgres on the server, with a single ordered commit log as the source of truth. It offers server-authoritative sync, optimistic writes, and end-to-end encryption. Built with a spec-first approach, it provides dual TypeScript and Rust cores that are kept in lockstep via a conformance suite. Developers can quickly start with `bun create syncular-app`, and the framework includes React hooks, type generation, and bindings for Tauri, React Native, and more. Experience seamless offline capability and robust sync with Syncular.
Clients keep a real local SQLite database, writes go through an optimistic outbox, and one ordered commit log on the server stays the source of truth.
- jmull
No mention of conflict resolution? I suspect it's far too naive to be useful for anything real.
- janandonly
I wish there was an established way to build local first software with a robust syncing in the background, either P2P or to a server.
I feel projects like this for local first and projects like Iroh for connectivity over NAT and through firewalls need to come together more.
It would be could to have a drop in framework for this.
- satvikpendem
Looks interesting, was looking for something like this as currently for Flutter I use Loro via flutter_rust_bridge as the CRDT data store, but it's not SQL so some things like big queries are annoying. How are you handling CRDTs in a SQL database? I thought those were notoriously hard as relational wasn't built for CRDT style syncing?