{"id":13838162,"url":"https://github.com/arn4v/offline-first","last_synced_at":"2025-04-13T10:32:37.970Z","repository":{"id":96542010,"uuid":"565534990","full_name":"arn4v/offline-first","owner":"arn4v","description":"A list of projects in the offline-first storage, sync \u0026 realtime collaboration/multiplayer space. [PRs welcome]","archived":false,"fork":false,"pushed_at":"2024-03-17T23:56:02.000Z","size":33,"stargazers_count":57,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-08-05T15:07:14.363Z","etag":null,"topics":["crdt","crdt-implementations","crdts","offline-first","prs-welcome","realtime-collaboration","sqlite"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arn4v.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-11-13T18:00:04.000Z","updated_at":"2024-08-04T09:35:33.000Z","dependencies_parsed_at":"2024-03-17T17:27:55.828Z","dependency_job_id":"eef0d348-b3ec-4911-b315-80eabc75caef","html_url":"https://github.com/arn4v/offline-first","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arn4v%2Foffline-first","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arn4v%2Foffline-first/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arn4v%2Foffline-first/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arn4v%2Foffline-first/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arn4v","download_url":"https://codeload.github.com/arn4v/offline-first/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223582213,"owners_count":17168657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crdt","crdt-implementations","crdts","offline-first","prs-welcome","realtime-collaboration","sqlite"],"created_at":"2024-08-04T15:01:39.765Z","updated_at":"2025-04-13T10:32:37.956Z","avatar_url":"https://github.com/arn4v.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"  # Offline-First\n\nA list of projects in the offline-first storage, sync \u0026 realtime collaboration/multiplayer space.\n\n## Databases\n\n1. [RxDB](https://github.com/pubkey/rxdb)\n2. [WatermelonDB](https://github.com/Nozbe/WatermelonDB)\n3. [Tuple](https://github.com/ccorcos/tuple-database)\n4. [Datascript](https://github.com/tonsky/datascript)\n5. [Gun](https://github.com/amark/gun)\n6. [TinyBase](https://tinybase.org/)\n7. [SignalDB](https://signaldb.js.org/)\n8. [Fireproof](https://use-fireproof.com/)\n9. [Vlcn](https://github.com/vlcn-io/vlcn-orm) – ORM \u0026 P2P Syncing library to build offline-first apps.\n10. [Kikko](https://github.com/kikko-land/kikko) – Reactive query layer on top of SQLite with support for web, desktop (Electron/Tauri) and mobile (React Native/Capacitor)\n\n## Frameworks\n1. [Evolu](https://github.com/evoluhq/evolu)\n2. [Verdant](https://github.com/a-type/verdant)\n3. [Liveblocks](https://liveblocks.io)\n4. [Replicache](https://replicache.dev/)\n5. [SyncedStore](https://github.com/yousefed/SyncedStore)\n\n## CRDT Implementations\n\n### JavaScript\n1. [Tinymerge](https://github.com/siliconjungle/tiny-merge)\n2. [Yjs](https://github.com/yjs/yjs)\n3. [Automerge](https://github.com/automerge/automerge)\n4. [Loro](https://github.com/loro-dev/loro)\n\n### Rust\n1. [CR SQlite](https://github.com/vlcn-io/cr-sqlite) - LWW register for SQLite\n2. [Diamond Types (Rust)](https://github.com/josephg/diamond-types)\n3. [y-crdt - Rust port of Y.js](https://github.com/y-crdt/y-crdt)\n4. [automerge-rs](https://github.com/automerge/automerge-rs)\n5. [Loro](https://github.com/loro-dev/loro)\n\n\n## Startups\n\n1. [InstantDB](https://instantdb.com) – Firebase alternative with a Graph-based client DB at the core\n3. [ElectricSQL](https://electric-sql.com/)\n4. [Homebase](https://homebase.io/)\n5. [Convex](https://www.convex.dev/)\n\n## Miscellaneous\n\n1. [Redux Offline](https://github.com/redux-offline/redux-offline) – Persistence layer for Redux stores.\n2. [localForage](https://github.com/localForage/localForage)\n\n## Resources\n\n### Writeups\n\n1. [Local-first software – You own your data, in spite of the cloud](https://www.inkandswitch.com/local-first/) - [Ink and Switch](https://www.inkandswitch.com)\n2. [Building a BFT JSON CRDT](https://jzhao.xyz/posts/bft-json-crdt/)\n3. [Riffle - Building data-centric apps with a reactive relational database](https://riffle.systems/essays/prelude/)\n4. [Realtime editing of ordered sequences](https://www.figma.com/blog/realtime-editing-of-ordered-sequences/)\n5. [How Figma’s multiplayer technology works](https://www.figma.com/blog/how-figmas-multiplayer-technology-works/)\n6. [An introduction to state-based CRDTs](\n\n### Videos\n\n1. [CRDTs for Mortals](https://www.youtube.com/watch?v=DEcwa68f-jY) - James Long\n2. [Conflict-Free Replicated Data Types (CRDT) for Distributed JavaScript Apps.](https://www.youtube.com/watch?v=M8-WFTjZoA0)\n3. [A CRDT Primer: Defanging Order Theory](https://www.youtube.com/watch?v=OOlnp2bZVRs) - John Mumm\n4. [Building a collaborative text editor with WebRTC and CRDTs](https://www.youtube.com/watch?v=hy0ePbpna5Y)\n6. [​Riffle - Reactive Relational State (Local-First Meetup Berlin #1)](https://www.youtube.com/watch?v=zjl7CpG9h3w) - Geoffrey Litt\n7. [CRDTs for Non Academics](https://www.youtube.com/watch?v=vBU70EjwGfw)\n8. [Automerge: Making servers optional for real-time collaboration](https://www.youtube.com/watch?v=PHz17gwiOc8) - Martin Kleppmann\n9. [Linear's realtime sync system](https://www.youtube.com/watch?v=WxK11RsLqp4\u0026t=2169s) - Tuomas Artman\n10. [Scaling the Linear Sync Engine](https://linear.app/blog/scaling-the-linear-sync-engine)\n11. [Metamuse Episode 56 - Sync]([url](https://museapp.com/podcast/56-sync/)https://museapp.com/podcast/56-sync/)\n\n### Podcasts\n1. [Localfirst.fm](https://localfirst.fm/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farn4v%2Foffline-first","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farn4v%2Foffline-first","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farn4v%2Foffline-first/lists"}