Our great sponsors
|3 days ago||21 days ago|
|MIT License||MIT License|
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Best local database that works on all platforms including web?
6 projects | reddit.com/r/FlutterDev | 2 Mar 2023
Yes. I asked the devs about ideas for this in this ticket and got an interesting response. It's aimed towards server-side handling, but the same ideas apply to local storage as well.
Show HN: Pg_CRDT – an experimental CRDT extension for Postgres
4 projects | news.ycombinator.com | 10 Dec 2022
CRDTs: A Beginner's overview for building a collaborative app
2 projects | dev.to | 3 Dec 2022
Evan Wallace CRDT Algorithms
5 projects | news.ycombinator.com | 27 Nov 2022
Anyone unsure of what a CRDT is, this is the perfect intro: https://www.inkandswitch.com/peritext/
The two most widely used CRDT implementations (combining JSON like general purpose types and rich text editing types) are:
- Automerge https://github.com/automerge/automerge
Should I Move From PHP to Node/Express?
13 projects | reddit.com/r/node | 13 Oct 2022
For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.
Maintaining Referential Integrity During Insertions And Deletions
2 projects | news.ycombinator.com | 25 May 2022
I created an Excel-like React spreadsheet with collabration support
3 projects | reddit.com/r/webdev | 21 May 2022
And about conflict --as already mentioned in comments-- CRDTs is the way to go here. Automerge is an implementation you may want to look into.
Conflict-Free Replicated Data Types (CRDT)
4 projects | news.ycombinator.com | 10 Apr 2022
Automerge CRDT – Build local-first software
2 projects | news.ycombinator.com | 1 Apr 2022
Show HN: SyncedStore CRDT – build multiplayer collaborative apps for React / Vue
11 projects | news.ycombinator.com | 8 Dec 2021
What are some alternatives?
yjs - Shared data types for building collaborative software
crdt-benchmarks - A collection of CRDT benchmarks
FluidFramework - Library for building distributed, real-time collaborative web applications
SyncedStore - SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically.
slate-yjs - Yjs binding for Slate
teletype-crdt - String-wise sequence CRDT powering peer-to-peer collaborative editing in Teletype for Atom.
automerge-rs - Rust implementation of automerge [Moved to: https://github.com/automerge/automerge]
y-crdt - Rust port of Yjs
rustpad - Efficient and minimal collaborative code editor, self-hosted, no database required
peritext - A CRDT for asynchronous rich-text collaboration, where authors can work independently and then merge their changes.
MobX - Simple, scalable state management.
liveblocks - Liveblocks is a real-time collaboration infrastructure for developers.