https://github.com/airdaydev/airday
Underpinning my current app is an e2ee local-first sync engine, basically it is a traditional client-server sync (encrypted logs + snapshots sequenced with integers). It sends bundles of Loro CRDT operations. I wrapped the client side in WASM to power the web app and the CLI and have started a swift wrapper to port to native iOS. Bundle size is 3MB/1.2MB g-zipped so pretty happy with it. I've realised that web encryption is kind of bs (at least not as "WE CAN NEVER ACCESS YOUR DATA" as some vendors state) if someone else is distributing the app.
Over the last week I have done a lot of performance work & data remodeling - CRDTs are interesting because you can let data fall through the gaps if you're not careful.
Underpinning my current app is an e2ee local-first sync engine, basically it is a traditional client-server sync (encrypted logs + snapshots sequenced with integers). It sends bundles of Loro CRDT operations. I wrapped the client side in WASM to power the web app and the CLI and have started a swift wrapper to port to native iOS. Bundle size is 3MB/1.2MB g-zipped so pretty happy with it. I've realised that web encryption is kind of bs (at least not as "WE CAN NEVER ACCESS YOUR DATA" as some vendors state) if someone else is distributing the app.
Over the last week I have done a lot of performance work & data remodeling - CRDTs are interesting because you can let data fall through the gaps if you're not careful.