MCPcopy
hub / github.com/yjs/yjs

github.com/yjs/yjs @v14.0.0-22 sqlite

repository ↗ · DeepWiki ↗ · release v14.0.0-22 ↗
991 symbols 3,169 edges 56 files 338 documented · 34%
README

Yjs

A CRDT framework with a powerful abstraction of shared data

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 merged without merge conflicts.

Yjs is network agnostic (p2p!), supports many existing rich text editors, offline editing, version snapshots, undo/redo and shared cursors. It scales well with an unlimited number of users and is well suited for even large documents.

:construction_worker_woman: If you are looking for professional support, please consider supporting this project via a "support contract" on GitHub Sponsors. I will attend your issues quicker and we can discuss questions and problems in regular video conferences. Otherwise you can find help on our community discussion board.

Sponsorship

Please contribute to the project financially - especially if your company relies on Yjs. Become a Sponsor

Professional Support

  • Support Contract with the Maintainer - By contributing financially to the open-source Yjs project, you can receive professional support directly from the author. This includes the opportunity for weekly video calls to discuss your specific challenges.
  • Synergy Codes - Specializing in consulting and developing real-time collaborative editing solutions for visual apps, Synergy Codes focuses on interactive diagrams, complex graphs, charts, and various data visualization types. Their expertise empowers developers to build engaging and interactive visual experiences leveraging the power of Yjs. See their work in action at Visual Collaboration Showcase.

Who is using Yjs

  • AFFiNE A local-first, privacy-first, open source knowledge base. :star2:
  • Huly - Open Source All-in-One Project Management Platform :star2:
  • Cargo Site builder for designers and artists :star2:
  • Gitbook Knowledge management for technical teams :star2:
  • Evernote Note-taking app :star2:
  • Lessonspace Enterprise platform for virtual classrooms and online training :star2:
  • Ellipsus - Collaborative writing app for storytelling etc. Supports versioning, change attribution, and "blame". A solution for the whole publishing process (also selling) :star:
  • Dynaboard Build web apps collaboratively. :star:
  • Relm A collaborative gameworld for teamwork and community. :star:
  • Room.sh A meeting application with integrated collaborative drawing, editing, and coding tools. :star:
  • Nimbus Note A note-taking app designed by Nimbus Web. :star:
  • Pluxbox RadioManager A web-based app to collaboratively organize radio broadcasts. :star:
  • modyfi - Modyfi is the design platform built for multidisciplinary designers. Design, generate, animate, and more — without switching between apps. :star:
  • Sana A learning platform with collaborative text editing powered by Yjs.
  • Serenity Notes End-to-end encrypted collaborative notes app.
  • PRSM Collaborative mind-mapping and system visualisation. (source)
  • Alldone A next-gen project management and collaboration platform.
  • Living Spec A modern way for product teams to collaborate.
  • Slidebeamer Presentation app.
  • BlockSurvey End-to-end encryption for your forms/surveys.
  • Skiff Private, decentralized workspace.
  • JupyterLab Collaborative computational Notebooks
  • JupyterCad Extension to JupyterLab that enables collaborative editing of 3d FreeCAD Models.
  • JupyterGIS Collaborative GIS (Geographic Information System) editor in Jupyter
  • Hyperquery A collaborative data workspace for sharing analyses, documentation, spreadsheets, and dashboards.
  • Nosgestesclimat The french carbon footprint calculator has a group P2P mode based on yjs
  • oorja.io Online meeting spaces extensible with collaborative apps, end-to-end encrypted.
  • LegendKeeper Collaborative campaign planner and worldbuilding app for tabletop RPGs.
  • IllumiDesk Build courses and content with A.I.
  • btw Open-source Medium alternative
  • AWS SageMaker Tools for building Machine Learning Models
  • linear Streamline issues, projects, and product roadmaps.
  • Arkiter - Live interview software
  • Appflowy - They use Yrs
  • Multi.app - Multiplayer app sharing: Point, draw and edit in shared apps as if they're on your computer. They are using Yrs.
  • AppMaster A No-Code platform for creating production-ready applications with source code generation.
  • Synthesia - Collaborative Video Editor
  • thinkdeli - A fast and simple notes app powered by AI
  • ourboard - A collaborative whiteboard application
  • Ellie.ai - Data Product Design and Collaboration
  • GoPeer - Collaborative tutoring
  • screen.garden - Collaborative backend for PKM apps.
  • NextCloud - Content Collaboration Platform
  • keystatic - git-based CMS
  • QDAcity - Collaborative qualitative data analysis platform
  • Kanbert - Project management software
  • Eclipse Theia - A cloud & desktop IDE that runs in the browser.
  • ScienHub - Collaborative LaTeX editor in the browser.
  • Open Collaboration Tools - Collaborative editing for your IDE or custom editor
  • Typst - Compose, edit, and automate technical documents
  • Kedyou - Digital workspaces for tutoring
  • Lightpage - Personal living notebook
  • reearth-flow - Collaboratively calculate and convert various data
  • ProtonMail | Proton Docs - E2E encrypted collaborative documents in Proton Drive.
  • Theneo - AI-powered API docs with live team collaboration.

Table of Contents

Overview

This repository contains a collection of shared types that can be observed for changes and manipulated concurrently. Network functionality and two-way-bindings are implemented in separate modules.

Bindings

Name Cursors Binding Demo
ProseMirror                                                   y-prosemirror demo
Quill y-quill demo
CodeMirror y-codemirror demo
Monaco y-monaco demo
Ace y-ace
Slate slate-yjs demo
BlockSuite (native) demo
Lexical (native) demo
BlockNote y-prosemirror demo
Tiptap y-prosemirror demo
Milkdown y-prosemirror demo
Superdoc (native) demo
valtio valtio-yjs demo
immer immer-yjs demo
React react-yjs demo
React / Vue / Svelte / MobX SyncedStore demo
mobx-keystone mobx-keystone-yjs demo
PSPDFKit yjs-pspdfkit demo
Rows n'Columns @rowsncolumns/y-spreadsheet

Utilities

Tools that extend the core functionality of Yjs.

y-utility
Library with YMultiDocUndoManager (undo/redo across Yjs docs) and YKeyValue (optimized key-value store).
yjs-orderedtree 🌳
Class for ordered trees via Y.Map. Handles insert, delete, and move operations for folder-like hierarchies.

Providers

Setting up the communication between clients, managing awareness information, and storing shared data for offline usage is quite a hassle. Providers manage all that for you and are the perfect starting point for your collaborative app.

This list of providers is incomplete. Please open PRs to add your providers to this list!

Connection Providers

y-websocket
A module that contains a simple websocket backend and a websocket client that connects to that backend. y-redis, y-sweet, ypy-websocket, yrs-warp and Hocuspocus (see below) are alternative backends to y-websocket.
y-webrtc
Propagates document updates peer-to-peer using WebRTC. The peers exchange signaling data over signaling servers. Publicly available signaling servers are available. Communication over the signaling servers can be encrypted by providing a shared secret, keeping the connection information and the shared document private.
@liveblocks/yjs 🌟
Liveblocks Yjs provides a fully hosted WebSocket infrastructure and persisted data store for Yjs documents. No configuration or maintenance is required. It also features Yjs webhook events, REST API to re

Core symbols most depended-on inside this repo

insert
called by 590
src/ytype.js
get
called by 215
src/utils/Doc.js
setAttr
called by 181
src/ytype.js
get
called by 113
src/ytype.js
push
called by 110
src/ytype.js
toJSON
called by 96
src/ytype.js
delete
called by 95
src/ytype.js
getAttr
called by 78
src/ytype.js

Shape

Function 499
Method 378
Class 114

Languages

TypeScript100%

Modules by API surface

src/ytype.js86 symbols
tests/y-text.tests.js49 symbols
src/utils/UpdateEncoder.js44 symbols
src/utils/IdSet.js44 symbols
tests/y-map.tests.js43 symbols
tests/y-array.tests.js42 symbols
src/utils/UpdateDecoder.js41 symbols
src/utils/IdMap.js41 symbols
src/utils/AttributionManager.js40 symbols
src/structs/Item.js37 symbols
src/utils/updates.js34 symbols
tests/testHelper.js32 symbols

Dependencies from manifests, versioned

@types/node22.14.1 · 1×
@y/protocols1.0.6-1 · 1×
lib01.0.0-0 · 1×
markdownlint0.40.0 · 1×
markdownlint-cli0.45.0 · 1×
standard17.1.2 · 1×
typescript5.9.3 · 1×

For agents

$ claude mcp add yjs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact