Our great sponsors
- Appwrite - The open-source backend cloud platform
- Amplication - open-source Node.js backend code generator
- SurveyJS - A Non-Cloud Alternative to Google Forms that has it all.
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- Mergify - Updating dependencies is time-consuming.
|5 days ago||about 1 month 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.
Ask HN: What is new in Algorithms / Data Structures these days?
15 projects | news.ycombinator.com | 10 May 2023
Best local database that works on all platforms including web?
6 projects | /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 | /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 | /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
Show HN: SyncedStore CRDT – build multiplayer collaborative apps for React / Vue
11 projects | news.ycombinator.com | 8 Dec 2021
Hi! Great questions :)
First of all, SyncedStore does not implement any CRDT algorithms. Credits for this go to Yjs  (and its author Kevin), which it uses as underlying CRDT.
Yjs and Automerge are (afaik) the two most commonly used CRDT implementations. Both have their pros and cons, but Yjs has focused a lot on performance .
Automerge has a bit friendlier "Immer style"  API. I'm not too familiar with @localfirst/state, but it seems to add a Redux style API on top of Automerge.
Hope you're still following along :) Maybe it helps to compare the TODO-MVC applications, as both SyncedStore (https://github.com/YousefED/SyncedStore/tree/main/examples) and @localfirst/state (https://github.com/local-first-web/state/tree/main/examples/...) have implemented these as examples!
Web Applications from the Future: A Database in the Browser
2 projects | news.ycombinator.com | 8 Jun 2021
I’m exploring the ideas (an easy to use framework to build local-first  apps) in my library Reactive-CRDT (https://github.com/yousefed/reactive-crdt). Feedback welcome!
All credit for the underlying tech to YJS, which has been amazing as mentioned by others in this thread.
What are some alternatives?
yjs - Shared data types for building collaborative software
FluidFramework - Library for building distributed, real-time collaborative web applications
crdt-benchmarks - A collection of CRDT benchmarks
y-websocket - Websocket Connector for Yjs
slate-yjs - Yjs binding for Slate
y-crdt - Rust port of Yjs
teletype-crdt - String-wise sequence CRDT powering peer-to-peer collaborative editing in Teletype for Atom.
osmosis-js - JS reference implementation of Osmosis, a JSON data store with peer-to-peer background sync
rustpad - Efficient and minimal collaborative code editor, self-hosted, no database required
Immer - Create the next immutable state by mutating the current one