(2023-06-30) Martin Building The Future Of Software With DXOS
recognized something that has the shape of software that I want to see in the world.
What is that shape? Let me draw you a picture
Reactive UI: Data is reactively shared via ECHO, a database that synchronizes your data across all the devices that your app is running on.
Local-first: Data is stored on device, in-browser
uses CRDTs (at the moment, it's Y.js) to handle conflict resolution.
All of the data in ECHO is tied to a specific user. ECHO uses asymmetric-key cryptography
ECHO clients exchange data peer-to-peer over WebRTC. The framework handles all the tricky networking logic. No cloud infrastructure required. DXOS runs a signaling server to help peers discover each other. You can host it yourself if you want.
Multiple apps interoperate over the same data without APIs or RPC.
it's like having the same database in every app.
did I mention the whole thing is open source?
DXOS a framework? Well, yes, there's a React framework and a TypeScript SDK to help developers build apps quickly.
Is it a protocol? Yes, we had to invent some protocols to make that happen.
Muse.app is a spatial canvas tool that's built on local-first principles. Two of the founders worked on the original local-first software paper. Their podcast, Metamuse, is literally the only podcast I listen to
recently, they released an episode reflecting on their local-first sync solution. They discuss the benefits and challenges, describe the problems still facing them today, and give a realistic look at the challenges challenges inherent to building local-first software. I found the episode both sobering and inspiring.