Modular building blocks for collaborative applications like Google Docs or Figma.

This documentation website is a work in progress. The best source of information is still the Yjs README and the yjs-demos repository.

Yjs is a high-performance CRDT for building collaborative applications that sync automatically.

It exposes its internal CRDT model as shared types. Shared types are just common data types like Map or Array. They can be manipulated like regular data types, they fire events when changes happen, and you can always merge them without merge conflicts. Always!

Editor Support

Yjs supports many of the most popular text and rich-text editors. And the list keeps growing!

Network Agnostic ๐Ÿ“กโ€‹

Yjs doesn't make any assumption about the network technology you are using. As long as all changes eventually arrive, the documents will sync. The order in which document updates are applied doesn't matter.

You can integrate Yjs into your existing communication infrastructure, or use one of the several existing network providers that allow you to jump-start your application backend.

Scaling shared editing backends is not trivial. Most shared editing solutions depend on a single source of truth - a central server - to perform conflict resolution. Since Yjs doesn't need a central source of truth, we can design the backend using ideas from distributed system architecture. In fact, Yjs can be scaled indefinitely as it is shown in the y-redis section.

And why not design an application using P2P technologies without sharing data with a server? Yjs is perfectly capable of doing that. We include several examples of how Yjs can be used without a backend and without any setup

Rich Ecosystem ๐Ÿ”ฅ

Yjs is a modular approach that allows the community to make any editor collaborative using any network technology. It has thought-through solutions for almost all shared-editing related problems.

We built a rich ecosystem of extensions around Yjs. There are ready-to-use editor integrations for many popular (rich-)text editors, adapters to different network technologies (like WebRTC, WebSocket, or Hyper), and persistence providers that store document updates in a database.

Unmatched Performance๐Ÿš€

Yjs is the fastest CRDT implementation, by far.