# streamich/json-joy

json-joy is a library that implements cutting-edge real-time and collaborative editing algorithms and utilities for JSON data models, with a focus on developing the JSON CRDT (Conflict-free Replicated Data Type) specification and implementation.

Repository: https://github.com/streamich/json-joy
Canonical: https://ross.abutalabs.com/products/json-joy
Homepage: https://jsonjoy.com/libs/json-joy-js
Language: TypeScript
License: NOASSERTION
License Family: other
Topics: json, json-crdt-patch, collaboration, collaborative-editing, messagepack, json-random, cbor, collaborative, crdt, local-first, offline, operational-transformation, patch, reactive, rpc, ubjson, schema, multiplayer, p2p, realtime
Last push: 2026-08-24T14:05:08+00:00

## Health v2 (maintenance only)
Score: 90/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 74, longevity 100
- inputs: {"age_days": 2191, "days_push": 9, "days_rel": 92, "gap_med": 1.0, "n_releases_24m": 99}
- 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 1088, forks 26 (observed 2026-08-28T04:03:32.516859+00:00)

## What it is
json-joy is a TypeScript library implementing the JSON CRDT protocol for conflict-free real-time collaboration on JSON data models, plus JSON Patch, JSON Pointer, and serialization utilities. It includes editor integrations (React, CodeMirror, Monaco, Slate, ProseMirror, Quill) and reactive RPC specifications.

## Use cases
- build a collaborative text editor with conflict-free merging
- sync JSON documents across offline clients
- add multiplayer editing to CodeMirror or Monaco
- implement local-first apps with automatic conflict resolution
- apply and validate JSON Patch operations
- build reactive RPC over websockets

## When to choose
- you need CRDT-based real-time collaboration on JSON or text
- you want local-first/offline sync with seamless merging
- you need editor integrations for popular editors like Slate or ProseMirror
- you want a well-specified JSON CRDT implementation in TypeScript

## When to avoid
- you only need simple REST APIs without real-time collaboration
- your data model is not JSON-like
- you need a mature Yjs alternative with a large ecosystem
- you need a non-JavaScript language runtime

## Facets
- artifact type: library
- maturity: active
- function: serialization, rpc, websocket, state-management, developer-tools
- domain: web-development, frontend, backend, microservices, developer-tools
- platform: browser, cross-platform
- tags: crdt, json-crdt, collaborative-editing, local-first, offline-first, json-patch, json-pointer, multiplayer, operational-transformation, messagepack, cbor, reactive, real-time, nodejs, typescript

## Member repositories
- streamich/json-joy (main) score 90

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:32.516859+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-30T06:49:23.452520+00:00, confidence not recorded.
  - readme: https://github.com/streamich/json-joy (fetched 2026-08-28T04:03:32.516859+00:00, sha 2dd85a33af83)
  - homepage: https://jsonjoy.com/libs/json-joy-js (fetched 2026-08-29T12:51:58.512245+00:00, sha d388afba5eb6)
  - site_page: https://jsonjoy.com/libs/json-joy-js/getting-started (fetched 2026-08-29T12:51:58.521323+00:00, sha 2443e8a69e80)
  - site_page: https://jsonjoy.com/libs/json-joy-js/getting-started/contributing (fetched 2026-08-29T12:51:58.523032+00:00, sha 2c822702a928)
  - site_page: https://jsonjoy.com/libs/json-joy-js/json-crdt/guide/getting-started (fetched 2026-08-29T12:51:58.524694+00:00, sha a213cc7af203)
  - site_page: https://jsonjoy.com/libs/json-joy-js/json-crdt/extensions/about-extensions (fetched 2026-08-29T12:51:58.526333+00:00, sha 1b6e89e8e97c)
- Data as of 2026-08-30T08:39:29.467469+00:00.
