yjs
MobX
Our great sponsors
yjs | MobX | |
---|---|---|
42 | 35 | |
10,437 | 26,116 | |
4.8% | 0.4% | |
7.6 | 8.9 | |
6 days ago | about 21 hours ago | |
JavaScript | TypeScript | |
MIT | 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.
yjs
-
Hindsight is a free and open-source retrospective board
No back-end. Data is shared via WebRTC directly between connected browsers. I'm using Yjs to help me with that.
- Show HN: Hindsight is a free and open-source retrospective board
-
Discussion Thread
also there is this Javascript library that implements Conflict Resistant Data Types
- Show HN: Pg_CRDT – an experimental CRDT extension for Postgres
-
CRDTs: A Beginner's overview for building a collaborative app
There are a lot of implementations of CRDTs out there. In JavaScript, for instance, we have Y.js (https://github.com/yjs/yjs) and automerge (https://github.com/automerge/automerge). There’s also a Y.js demo (https://demos.yjs.dev/prosemirror/prosemirror.html) that allows you to play around with them and have your own collaborative app running in just a few seconds. All messages are exchange via webRTC and manages the state via CRDTs. This can be a great sandbox to understand how CRDTs work and see.
-
CRDTs make multiplayer text editing part of Zed's DNA
Yjs is being quite heavily used in the industry[1], and being researched for even more companies. There are also demos showing how to integrate it with an existing rich text editors[2]. If you have some ideas about the missing parts, you could also open topic on discuss.yjs.dev - the documentation page (https://docs.yjs.dev) has tons of useful links.
Re. other purpose projects - Yjs/Yrs main target are sequential data structures (text, arrays), but it also has support for maps and xml-like elements. In general you can build most data structures with it. I agree that it would be nice to have some other applications in demos though.
-
Evan Wallace CRDT Algorithms
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
- Maintaining Referential Integrity During Insertions And Deletions
-
Show HN: Yboard is a multiplayer desktop-like workspace based on CRDT
I've always been curious about real-time multiplayer user interfaces.
When I found out about CRDTs and Yjs[1] I thought they could serve as a solid base for a project like that.
So I built this pretty simple desktop-like UI (heavily inspired by lifeat.io) and used Yjs to replicate the whole UI state among multiple peers, creating the experience of a unique interface.
Try online: https://yboard.lol
-
Show: A multiplayer app to discuss and solve Leetcode questions with your friends.
[4]: https://github.com/yjs/yjs
MobX
-
A cure for React useState hell?
But I want to impress upon you that this is just only one of many patterns you can use this hook for. While this is subjective, I am personally not a huge fan of Redux and this type of pattern. It has its merits, but I think once you want to start layering in new patterns for actions, Mobx, Zustand, or XState are preferable in my personal opinion.
-
React Redux
It's important to note that Redux is just one of many options for global state management in a React application. Other popular options include MobX and the React context API.context API](https://reactjs.org/docs/context.html).
-
Managing my buisness logic with OOP
MobX - or even MobX-state-tree if you prefer
-
Front-end Guide
MobX
-
MobX with MVVM makes Frontend Developer's life much more easier than Redux does
It's silly to deny that in comparison with Redux, MobX's community is not so big. For example, the number of downloads at npmjs.com for Redux is 8 times bigger than for MobX. However, I can hardly agree with the other disadvantages.
-
I am sick and tired of react-redux. Who has some good alternatives?
I used https://mobx.js.org s lot. Concepts are a bit different because it is based on observables and your state is mutable, but really small boilerplate, fast and fun to work with
-
State of state management u React-u
Kada imamo potrebe za optimizacijom rirenerovanja komponenti u React-u i radimo sa velikim i kompleksnim objektima (deeply nested objects) biblioteke kao Redux nisu najoptimalnije i verovatno je najbolje koristiti proxy state management: MobX ili Valtio.
-
Preact Signals
I guess it's similar to this MobX :)? https://github.com/mobxjs/mobx
-
Why React Re-Renders
MobX is exactly what you're looking for: https://github.com/mobxjs/mobx
Vue works similar to React + MobX, but with weird design decisions like implicit reactivity, and a stale ecosystem thanks to the Vue2 vs Vue3 debacle.
What are some alternatives?
zustand - 🐻 Bear necessities for state management in React
Recoil - Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.
RxJS - A reactive programming library for JavaScript
valtio - 💊 Valtio makes proxy-state simple for React and Vanilla
automerge - A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.
riverpod - A simple way to access state while robust and testable.
Cycle.js - A functional and reactive JavaScript framework for predictable code
get_it - Get It - Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App. Maintainer: @escamoteur
automerge-rs - Rust implementation of automerge
liveblocks - The all-in-one toolkit to build collaborative products like Figma, Notion, and more.
bloc - A predictable state management library that helps implement the BLoC design pattern
Immer - Create the next immutable state by mutating the current one