This code is an experimental exploration into using yjs and indexeddb to better understand the lofi (local first) mechanisms. This is vanilla javascript using a beta version of svelte 5.
Clone repo
pnpm install
pnpm run dev
(in another terminal tab start the websocket server)
npx y-websocket-server
https://github.com/local-first-web for a great comparison
Installed Apps | Cloud Apps | Local-first Apps | |
---|---|---|---|
Fast | ✅ | ⛔️/✅ | ✅ |
Responsive | ✅ | ⛔️/✅ | ✅ |
No Network Dependency | ✅ | ⛔️ | ✅ |
No Provider Lock-in | ✅ | ⛔️ | ✅ |
Collaboration | ⛔️ | ✅ | ✅ |
Team Permissions | ⛔️ | ✅ | ✅ |
On-line backup | ⛔️ | ✅ | ✅ |
Continuous updates | ⛔️ | ✅ | ✅ |
Data Privacy | ✅ | ⛔️ | ✅ |
Data Portability | ⛔️ | ⛔️ | ✅ |
Effort for Data Distribution | ✅ | ⛔️ | ✅ |
Availability | ✅ | ⛔️ | ✅ |
Benefits of both worlds | ⛔️ | ⛔️ | ✅ |
Maturity of technology | ✅ | ✅ | ⛔️ |
Here Be Dragons | ✅ | ✅ | ⛔️ |