Triplit: Open-source DB that syncs data between server and browser in real-time
github.com
github.com
I use pouchdb / couchdb right now and I think my biggest issue at the moment is the amount of time it takes to sync up the app when you open it. It's possible to load the app straight from local data, but then it might be out of sync which could be jarring / confusing for the user.
Is this named after a triple store (e.g EAV) like in datomic? If so this is looking very close to my dream database.
With something like electric-sql you can just use one of the many Postgres tools, and other local-first options like https://ably.com/livesync have database adaptors for replication. I think this is an important requirement whenever you build your own database
https://debezium.io/documentation/reference/2.5/transformati...
For example, the original method for connecting Postgres to Materialize.com was using a Debezium stream: https://materialize.com/docs/ingest-data/cdc-postgres-kafka-...
So Triplit does this all for you automatically with the mental model that your database queries automatically update when any data changes happen even if you're offline. Triplit takes care of reconciling this whether the request succeeds on the server and with concurrent changes from other users.
In the future, we'll have an easier way to accomplish what Matt did out of the box so you can create re-orderable lists and collaborative text that are fast and seamlessly handle conflicts automatically
Regarding similar projects there are a few you can find on https://localfirstweb.dev/ but Triplit stands out in a few ways: * Support for an authoritative server * Provides an optional hosted cloud service * Relational querying without SQL * Partial replication (this is a big one) * Typescript schemas and type hinting in queries in return types
For more advanced CRDT stuff, the creator of the Fugue List CRDT, created [a Triplit-powered collaborative text editor](https://github.com/mweidner037/list-demos/blob/master/tripli...) using Quill and his [List Positions](https://github.com/mweidner037/list-positions) library that we plan to have tighter integrations with.
Just to be on the same page, I'm talking about top section of https://www.triplit.dev/