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 | ✅ | ✅ | ⛔️ |