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 / about 2 months 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 / 4 months 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 / 4 months ago
I've seen it come up often in collaborative text editors. Also see: https://github.com/yjs/yjs. - Source: Hacker News / about 1 year 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 / over 1 year ago
Note: https://github.com/yjs/yjs for collaborative "document edition, and user cursors"; has WebRTC, web socket, matrix.org backend. - Source: Hacker News / over 1 year 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: over 1 year ago
Yjs framework: Because it is a CRDT implementation which provides collaborative editing and offline-first capability. Source: over 1 year 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 / over 1 year 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 / almost 2 years ago
Also there is this Javascript library that implements Conflict Resistant Data Types. Source: almost 2 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 / about 2 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 / about 2 years ago
You can use Nextcloud with an offline text editor such as Obsidian (for a better text edit UI). However, when two devices edit the same file at the same time, one will override the other (or cause a conflict). A CRDT algorithm is used to resolve file conflicts in real-time. As an example, this repository shows an example of conflicts being resolved with a CRDT using Yjs. How do you implement CRDT (for client-side... Source: about 2 years ago
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 - Yjs https://github.com/yjs/yjs. - Source: Hacker News / about 2 years ago
CRDTs like Yjs – solves several issues like local/offline-first, versioning, sync, collaboration (effectively replacing the cloud). Source: about 2 years ago
Related to this is also an example with ProseMirror (which TipTap uses for the editing component) [0][1] I'm not completely sure, but I think it uses Yjs [3] for the collaborative editing part. Quote: > Yjs is a CRDT implementation that exposes its internal data structure as shared types. Shared types are common data types like Map or Array with superpowers: changes are automatically distributed to other peers and... - Source: Hacker News / over 2 years ago
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 [1]:... - Source: Hacker News / over 2 years ago
Do you know an article comparing Yjs to other products?
Suggest a link to a post with product alternatives.
This is an informative page about Yjs. You can review and discuss the product 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.