Real-time Collaboration
Yjs enables real-time collaborative editing, allowing multiple users to work on the same document simultaneously without conflicts.
Conflict-free Replicated Data Type (CRDT)
Yjs employs CRDTs to automatically resolve changes and conflicts, eliminating the need for complex merging algorithms.
Scalability
The framework is designed to efficiently handle a large number of users, making it suitable for large-scale collaborative applications.
Offline Editing
Yjs supports offline editing, allowing users to make changes while disconnected from the network and synchronizing them once back online.
Language Agnostic
Yjs can be integrated with different programming languages, making it flexible for various tech stacks.
Open Source
As an open-source library, Yjs provides full transparency of its codebase and fosters a supportive community for continuous improvement.
We have collected here some useful links to help you find out if Yjs is good.
Check the traffic stats of Yjs on SimilarWeb. The key metrics to look for are: monthly visits, average visit duration, pages per visit, and traffic by country. Moreoever, check the traffic sources. For example "Direct" traffic is a good sign.
Check the "Domain Rating" of Yjs on Ahrefs. The domain rating is a measure of the strength of a website's backlink profile on a scale from 0 to 100. It shows the strength of Yjs's backlink profile compared to the other websites. In most cases a domain rating of 60+ is considered good and 70+ is considered very good.
Check the "Domain Authority" of Yjs on MOZ. A website's domain authority (DA) is a search engine ranking score that predicts how well a website will rank on search engine result pages (SERPs). It is based on a 100-point logarithmic scale, with higher scores corresponding to a greater likelihood of ranking. This is another useful metric to check if a website is good.
The latest comments about Yjs on Reddit. This can help you find out how popualr the product is and what people think about it.
In the architecture of my Collaborative-Code-Editor, choosing CRDTs over OT gives me the advantage of not depending on a server for my data conflicts. Using Yjs as my CRDT library, not only fixes the problems OT arises but comes with additional features. A unique identifier keeps track of the characters' identity, and relative addressing that points to the character position in my code editor. The relative... - Source: dev.to / 2 months ago
Highly suggest you take a look here: https://github.com/yjs/yjs CRDT can absolutely do what youโre asking. - Source: Hacker News / 3 months ago
``` Those commands create and move real files that immediately appear in the editor's file tree. The best part is that all of this works in both browser and server-side contexts, since yjs (https://github.com/yjs/yjs) is isomorphic. Under the hood, metadata (name, parent, timestamps) lives in a versioned CRDT table. Document content lives in a separate Y.Doc per file, so the directory index syncs without pulling... - Source: Hacker News / 4 months ago
Libraries like Automerge and Yjs have gone from academic curiosities to production-ready tools. They handle edge cases that would have made local-first apps unreliable five years ago. - Source: dev.to / 4 months ago
I really like these sorts of frameworks from an architectural perspective, but what's the use-case? Maybe I'm too SPA-pilled, because to me all the fun of Web development is in providing really fluid, skeuomorphic experiences like those enabled by, eg pragmatic-drag-and-drop[0] or yjs[1]. I just struggle to envision what application benefits from the efficiency that this or htmx offer, but from neither the... - Source: Hacker News / 5 months ago
JupyterLab does use CRDT via yjs (https://github.com/yjs/yjs), and the JupyterGIS collaboration system is based on the service provided by JupyterLab. So multiple users can edit the file concurrently. - Source: Hacker News / 9 months ago
Yjs - CRDT-based collaborative editing framework. - Source: dev.to / about 1 year ago
Of course, you donโt have to code this functionality from scratch! You can also look at open-source software like Yjs, text-crdt, Automerge and so many more. Alternatively, you can check out tools like Liveblocks, Ably, etc. Which enable collaborative multi-player features. - Source: dev.to / over 1 year ago
I've built this app some time ago but only shared with close friends. It has been useful for me so I decided to share here. It works by sharing state with yjs [1], as long as you are in the same session, i.e. The same path. https://github.com/yjs/yjs. - Source: Hacker News / almost 2 years ago
I write undo/redo/history in web/JS extensively. This the best lib out there for such tasks IMHO: https://github.com/yjs/yjs And you're right. You don't want undo/redo only in multi-user apps. You want to have each user have their own local undo/redo events that they can apply and unapply from the shared state which has its own events apart from each user. Everyone... - Source: Hacker News / almost 2 years ago
After reviewing the ~600 lines of code, I have to ask what about this undo/redo manager is "advanced"? This seems like a naive implementation of a snapshot collection that is selected via array index. It's not event sourcing, OT or CRDT. With every event, the entire object is serialized and put into the heap. I can't even imagine what this does for performance when you deal with any object of significant size.... - Source: Hacker News / almost 2 years ago
I've seen it come up often in collaborative text editors. Also see: https://github.com/yjs/yjs. - Source: Hacker News / almost 3 years ago
You are absolutely right that XML is better for document structures. My current theory is that Yjs [0] is the new JSON+XML. It gives you both JSON and XML types in one nested structure, all with conflict free merging via incremental updates. Also, you note the issue with XML and overlapping inline markup. Yjs has an answer for that with its text type, you can apply attributes (for styling or anything else) via... - Source: Hacker News / almost 3 years ago
Note: https://github.com/yjs/yjs for collaborative "document edition, and user cursors"; has WebRTC, web socket, matrix.org backend. - Source: Hacker News / almost 3 years ago
CCP needs to revamp proto anyway, due to recent exploits... practically, nothing really prevents 'em from using some sort of CRDT's to make the state of the sig view eventually consistent (yjs lib, if we're speaking frontendian). Source: about 3 years ago
Yjs framework: Because it is a CRDT implementation which provides collaborative editing and offline-first capability. Source: about 3 years ago
Anything CRDT (conflict free lated datatypes) related is fun to read up on and play with. Papers (page maintained by central academic in the world of CRDTs): https://crdt.tech Group doing research into how they can be used to build interesting collaborative (and async) applications: https://www.inkandswitch.com A few of the major open source implementations: - Yjs: https://github.com/yjs/yjs - Peritext:... - Source: Hacker News / about 3 years ago
Hi HN! Nostr-CRDT is an experimental project that connects Yjs [1] (a proven, high performance CRDT) with Nostr [2]. I wanted to learn about the Nostr protocol and see if it'd be possible to send updates to state (e.g.: edits of a rich text document, updates to a todo list) over Nostr. Nostr describes itself as "The simplest open protocol that is able to create a censorship-resistant global "social" network once... - Source: Hacker News / over 3 years ago
Also there is this Javascript library that implements Conflict Resistant Data Types. Source: over 3 years ago
A _lot_ of the heavy-lifting is done by the teams at Yjs[0] and Automerge[1], who have re-implemented their JS libs in Rust. This made it possible for us to wrap them into a Postgres extension using pgx[2] (which is fast becoming a de-facto tool at supabase) [0] Yjs: https://github.com/yjs/yjs [1] Automerge: https://github.com/automerge/automerge [3] pgx: https://github.com/tcdi/pgx. - Source: Hacker News / over 3 years ago
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... - Source: dev.to / over 3 years ago
Do you know an article comparing Yjs to other products?
Suggest a link to a post with product alternatives.
Is Yjs good? This is an informative page that will help you find out. Moreover, you can review and discuss Yjs here. The primary details have not been verified within the last quarter, and they might be outdated. If you think we are missing something, please use the means on this page to comment or suggest changes. All reviews and comments are highly encouranged and appreciated as they help everyone in the community to make an informed choice. Please always be kind and objective when evaluating a product and sharing your opinion.