You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SuperDoc Yjs was being framed as the "recommended" / "official" self-hosted
package across the docs, examples README, and llms-full.txt. It is a minimal
reference server with no built-in auth, persistence, scaling, or observability.
Production teams should reach for established Yjs infrastructure.
This PR makes Hocuspocus the recommended self-hosted default, introduces YHub
as the advanced path for attribution and revision history (with beta and
licensing caveats), and reframes SuperDoc Yjs as a reference implementation.
It also marks the URL-managed provider path as deprecated in favor of the
supported provider-agnostic contract: modules.collaboration = { ydoc, provider }.
Drive-by fixes: remove the broken getActiveDocumentCount/getConnectionCount
health-check example (those methods do not exist), fix the package README's
broken default import and wrong class name in the Quick Start example, and
remove the hocuspocus.mdx Next Steps card that funneled Hocuspocus users back
to SuperDoc Yjs.
Copy file name to clipboardExpand all lines: apps/docs/guides/collaboration/self-hosted-overview.mdx
+66-48Lines changed: 66 additions & 48 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,68 +36,62 @@ flowchart TB
36
36
37
37
## Choose your approach
38
38
39
+
SuperDoc's collaboration is provider-agnostic: pass `{ ydoc, provider }` to `modules.collaboration` and the server choice is yours. We recommend established Yjs infrastructure for production deployments.
40
+
39
41
| Option | Best For | Setup Time |
40
42
|--------|----------|------------|
41
-
|[SuperDoc Yjs](/guides/collaboration/superdoc-yjs)| New projects, recommended | 30 mins |
42
-
|[Hocuspocus](/guides/collaboration/hocuspocus)| TipTap ecosystem users | 30 mins |
43
+
|[Hocuspocus](/guides/collaboration/hocuspocus)| Production self-hosted default. Mature, MIT-licensed, with documented auth, persistence, and Redis scaling. | 30 mins |
Reach for YHub when revision history and identity attribution are central to your product. Validate license and beta status before committing.
72
72
73
-
[Get Started](/guides/collaboration/hocuspocus)
73
+
[See the example](https://github.com/superdoc-dev/superdoc/tree/main/examples/editor/collaboration/backends/fastapi/yjs-hub)
74
74
</Tab>
75
75
76
-
</Tabs>
76
+
<Tabtitle="SuperDoc Yjs">
77
+
**Minimal reference server**
77
78
78
-
## Client connection options
79
+
A small Yjs WebSocket server we ship for prototypes and local development. Not production infrastructure: no built-in auth, persistence, scaling, or observability. For production, use Hocuspocus or YHub.
79
80
80
-
When self-hosting, you have two ways to connect SuperDoc:
The provider-agnostic approach gives you more control but requires managing the provider lifecycle yourself.
123
-
</Note>
115
+
This shape works with any Yjs provider: `HocuspocusProvider`, `WebsocketProvider` from `y-websocket` (compatible with YHub and SuperDoc Yjs), `LiveblocksYjsProvider`, or your own.
116
+
117
+
### URL-based (deprecated)
118
+
119
+
<Warning>
120
+
This path is deprecated. SuperDoc creates the provider internally and emits a console warning. Use the provider-agnostic shape above for new code.
121
+
</Warning>
122
+
123
+
```javascript
124
+
newSuperDoc({
125
+
selector:'#editor',
126
+
modules: {
127
+
collaboration: {
128
+
url:'wss://your-server.com/doc',
129
+
token:'auth-token'
130
+
}
131
+
}
132
+
});
133
+
```
124
134
125
135
## Requirements
126
136
@@ -140,19 +150,27 @@ The provider-agnostic approach gives you more control but requires managing the
The official collaboration package for self-hosted deployments. Purpose-built for SuperDoc with a builder API.
7
+
A minimal Yjs WebSocket server we ship as a reference implementation for prototypes and local development.
8
+
9
+
<Warning>
10
+
This package is not production infrastructure. It has no built-in auth, persistence, scaling, or observability beyond what you wire into the hooks. For production self-hosted collaboration, use [Hocuspocus](/guides/collaboration/hocuspocus) (recommended default) or [YHub](https://github.com/superdoc-dev/superdoc/tree/main/examples/editor/collaboration/backends/fastapi/yjs-hub) (when attribution and revision history are central). SuperDoc's collaboration contract is provider-agnostic: pass `{ ydoc, provider }` to `modules.collaboration` and the server choice is yours.
Copy file name to clipboardExpand all lines: apps/docs/llms-full.txt
+4-3Lines changed: 4 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -253,10 +253,11 @@ Three preset themes included: Google Docs, Microsoft Word, and Blueprint.
253
253
254
254
## Collaboration
255
255
256
-
Real-time multiplayer editing using Yjs (CRDT). Providers supported:
256
+
Real-time multiplayer editing using Yjs (CRDT). The supported integration contract is provider-agnostic: pass `{ ydoc, provider }` to `modules.collaboration` on the client. Server options:
257
257
- Liveblocks (cloud)
258
-
- SuperDoc Yjs server (self-hosted)
259
-
- Hocuspocus (self-hosted)
258
+
- Hocuspocus (recommended self-hosted default)
259
+
- YHub (advanced self-hosted; beta; attribution and revision history use cases)
260
+
- SuperDoc Yjs (minimal reference server, not production infrastructure)
Copy file name to clipboardExpand all lines: packages/collaboration-yjs/README.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,8 @@
1
1
# SuperDoc Yjs collaboration library
2
2
3
-
`@superdoc-dev/superdoc-yjs-collaboration` is a library for integrating Yjs-based real-time collaborative editing into any Node.js WebSocket-enabled server framework. It is designed to work out-of-the-box for **SuperDoc**.
3
+
`@superdoc-dev/superdoc-yjs-collaboration` is a minimal Yjs WebSocket server for SuperDoc, shipped as a reference implementation for prototypes and local development.
4
+
5
+
> **Not production infrastructure.** No built-in auth, persistence, scaling, or observability beyond what you wire into the hooks. For production self-hosted collaboration, use [Hocuspocus](https://tiptap.dev/docs/hocuspocus) (recommended default) or [YHub](https://github.com/yjs/yhub) (when attribution and revision history are central). SuperDoc's collaboration contract is provider-agnostic: pass `{ ydoc, provider }` to `modules.collaboration` on the client and the server choice is yours.
4
6
5
7
It provides:
6
8
@@ -66,7 +68,7 @@ Below is an example using Fastify, but you can adapt it to any server framework.
0 commit comments