Home

Awesome

<br/> <p align="center"> <a href="#"><img width="600" src="./docs/images/banner.svg" /></a> </p> <p align="center"> Slate-yjs aims to be the goto collaboration solution for slate. Get started in seconds, scale to infinity, customize to your hearts content. </p> <br/> <p align="center"> <a href="#"><img src="./docs/images/demo.gif" /></a> </p> <br/> <p align="center"> <a href="#sponsors-"><strong>Sponsors</strong></a> · <a href="#why-yjs"><strong>Why Yjs?</strong></a> · <a href="https://slate-yjs.dev"><strong>Live demo</strong></a> · <a href="https://docs.slate-yjs.dev"><strong>Documentation</strong></a> · <a href="#packages"><strong>Packages</strong></a> · <a href="#products"><strong>Products</strong></a> · <a href="#questions"><strong>Questions</strong></a> · <a href="#contributing"><strong>Contributing!</strong></a> </p> <br/> <p align="center"> <a href="https://github.com/BitPhinix/slate-yjs/graphs/commit-activity" alt="Maintenance"> <img src="https://img.shields.io/badge/Maintained%3F-yes-brightgreen.svg" /></a> <a href="http://commitizen.github.io/cz-cli/" alt="Commitizen friendly"> <img src="https://img.shields.io/badge/commitizen-friendly-brightgreen.svg" /></a> <a href="https://www.npmjs.com/package/slate-yjs" alt="Downloads"> <img src="https://img.shields.io/npm/dt/slate-yjs.svg" /></a> <a href="https://www.npmjs.com/package/slate-yjs" alt="NPM"> <img src="https://img.shields.io/npm/v/slate-yjs" /></a> <a href="https://github.com/BitPhinix/slate-yjs/actions" alt="Tests"> <img src="https://img.shields.io/github/workflow/status/bitphinix/slate-yjs/test" /></a> <a href="https://github.com/BitPhinix/slate-yjs/actions?query=workflow%3Arelease" alt="Semantic Release"> <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" /></a> <br/>

Sponsors 💖

I'm currently looking for sponsors to found further development of slate-yjs. These awesome sponsors already fund the development:

<table> <tr> <td align="center"> <a href="https://www.sanalabs.com/"> <img src="https://github.com/sanalabs.png?size=100" width="100"><br> <strong>Sana Labs</strong> </a> </td> </tr> </table> <a href="https://opencollective.com/y-collective/projects/slate-yjs" alt="Sponsor"> <img src="https://img.shields.io/badge/Open%20Collective-Become%20a%20sponsor-brightgreen" /></a> <br/> <br/>

Hosting provided by:

<p> <a href="https://www.digitalocean.com/?utm_medium=opensource&utm_source=slate-yjs"> <img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px"> </a> </p> <br/> <br/>

Why Yjs?

Yjs offers a feature-rich rich text CRDT with best-in-class performance. It's used in production by multiple fortune 500 companies and is the core of many collaborative editing applications. Moreover, it offers a very mature ecosystem with server-side solutions like hocuspocus, enabling you to build robust and highly scalable collaborative/offline-first applications.

For more detailed benchmarks about performance, you can take a look here.

Why a CDRT over OT? While many current collaborative text editing applications rely on OT (e.g., google docs with ShareJS), it only provides a subset of the functionally CRDTs offer due to the dependence on a central server. In other words: CRDTS can do everything OT can, but OT simply can't.

You can read more about this here.

<br/> <br/>

Live demo

https://slate-yjs.dev

<br/> <br/>

Documentation

https://docs.slate-yjs.dev

<br/> <br/>

Packages

Slate-yjs's codebase is monorepo managed with yarn workspaces. It consists of a handful of packages—although you won't always use all of them:

PackageVersionSizeDescriptionChangelog
@slate-yjs/coreCore slate-yjs binding.CHANGELOG.md
@slate-yjs/reactReact specific components/utils for slate-yjs.CHANGELOG.md
<br/> <br/>

Products

These products use slate-yjs, and can give you an idea of what's possible:

<br/> <br/>

Questions?

For questions around yjs, head over to the Yjs Community. Trying to build a backend with hocuspocus and have questions? Take a look at the #hocuspocus channel in the TipTap Discord. Having issues with slate? There's a there's a Slack for that as well.

Any questions about slate-yjs? Thead over to the #slate-yjs channel inside the Slate Slack or post something in the Discussions

<br/> <br/>

Contributing!

All contributions are super welcome! Check out the contributing instructions for more info!

Slate-yjs is MIT-licensed.