# Yjs

Shared data types for building collaborative software

Repository: https://github.com/yjs/yjs
Canonical: https://ross.abutalabs.com/products/yjs
Homepage: https://docs.yjs.dev
Language: JavaScript
License: NOASSERTION
License Family: other
Topics: yjs, crdt, shared-editing, collaboration, collaborative-editing, peer-to-peer, p2p, offline-first, decentralized, realtime
Last push: 2026-08-06T08:32:25+00:00
Link (homepage): https://docs.yjs.dev
Link (site_page): https://docs.yjs.dev/getting-started/a-collaborative-editor
Link (site_page): https://docs.yjs.dev/getting-started/adding-awareness
Link (site_page): https://docs.yjs.dev/getting-started/allowing-offline-editing
Link (site_page): https://docs.yjs.dev/getting-started/working-with-shared-types

## Health v2 (maintenance only)
Score: 93/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 96, release rhythm 84, longevity 100
- inputs: {"age_days": 4418, "days_push": 27, "days_rel": 29, "gap_med": 38.5, "n_releases_24m": 15}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 22702, forks 798 (observed 2026-08-28T04:11:33.944089+00:00)

## What it is
Yjs is a high-performance CRDT framework that exposes shared data types (Y.Map, Y.Array, Y.Text, Y.Xml) which automatically sync and merge across peers without conflicts. It is network agnostic, supports rich text editor bindings, offline persistence, awareness/presence, and undo/redo for building collaborative applications like Google Docs or Figma.

## Use cases
- build a collaborative document editor like Google Docs
- sync shared state between multiple users in real time
- add offline editing support to a web app
- show shared cursors and user presence in an editor
- merge concurrent edits without merge conflicts
- make a rich text editor like ProseMirror or Quill collaborative
- build a local-first app with automatic data sync
- share whiteboard or canvas state across clients

## When to choose
- you need conflict-free real-time collaboration on shared data structures
- you want offline-first editing with later synchronization
- you need to bind collaboration to existing rich text editors
- you want a mature, well-benchmarked CRDT with a large ecosystem of providers and bindings

## When to avoid
- you only need simple client-server state sync without concurrent editing
- your data model is relational and better served by a traditional database
- you need a non-JavaScript environment without one of the community ports
- you require a permissive license - Yjs licensing is non-standard (NOASSERTION)

## Facets
- artifact type: library
- maturity: stable
- function: state-management, websocket, p2p, serialization, sdk
- domain: web-development, frontend, microservices, developer-tools
- platform: browser, cross-platform
- tags: crdt, collaborative-editing, offline-first, shared-types, realtime-sync, peer-to-peer, conflict-free-replication, real-time, javascript, nodejs

## Member repositories
- yjs/yjs (main) score 93
- yjs/yjs-demos (examples) score 41

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:33.944089+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T16:56:56.344724+00:00, confidence not recorded.
  - readme: https://github.com/yjs/yjs (fetched 2026-08-28T04:11:33.944089+00:00, sha b8acd291ad22)
  - homepage: https://docs.yjs.dev (fetched 2026-08-29T07:55:55.409538+00:00, sha 751d13fb4240)
  - site_page: https://docs.yjs.dev/getting-started/a-collaborative-editor (fetched 2026-08-29T07:55:55.422108+00:00, sha 325fb2f01f24)
  - site_page: https://docs.yjs.dev/getting-started/adding-awareness (fetched 2026-08-29T07:55:55.424928+00:00, sha e7e32aba741f)
  - site_page: https://docs.yjs.dev/getting-started/allowing-offline-editing (fetched 2026-08-29T07:55:55.427011+00:00, sha 0d521a4d4039)
  - site_page: https://docs.yjs.dev/getting-started/working-with-shared-types (fetched 2026-08-29T07:55:55.429146+00:00, sha 4232ad71436e)
  - site_page: https://docs.yjs.dev/api/about-awareness (fetched 2026-08-29T07:55:55.431395+00:00, sha 0c9ced5bc153)
  - site_page: https://docs.yjs.dev/api/faq (fetched 2026-08-29T07:55:55.433650+00:00, sha 88472c73d05c)
- Data as of 2026-08-30T08:39:29.467469+00:00.
