2.4k stars · MIT · v4.7.0 (2026-09-09), read from /releases/latest and CONFIRMED against registry.npmjs.org/@hocuspocus/server/latest, which also returned 4.7.0 · Track this in Scout
The ready-made Yjs collaboration server — holds the document, broadcasts changes, and saves to your own database.
▶Repo detailsthe review · specs · pros & cons · install
What it is
Hocuspocus is a collaboration backend for Yjs. It holds documents in memory, sends changes to everyone connected, and saves them to your database through a small hook you write.
What it is good for. Edition 13 #9 recommended Yjs for shared documents and stopped there, which was half an answer. Yjs alone only agrees between browsers that are already connected to something. This is that something, and it is the exact piece a solo founder loses a week to. It also brings the boring parts you would forget: who is allowed into a document, and when to write it back to Postgres.
- MIT, and it was released today. Version v4.7.0 is dated 9 September 2026, and the npm package agrees.
- Saving to your database is a few lines of code. The document is stored as bytes in Postgres.
- It comes from the same team as Tiptap, so the documentation is real and kept up to date.
- It is a Node.js service. If the rest of the application is written in something else, that is a second thing to deploy, watch and restart.
- Long-lived connections change how you size the server. Memory grows with the number of open documents, not with the number of requests.
- It is only worth anything if the product really gets shared documents. If one person opens one document, this is a week spent on nothing.
mkdir myapp-collab && cd myapp-collab
npm init -y
npm install @hocuspocus/server @hocuspocus/extension-database
# server.js
# import { Server } from '@hocuspocus/server'
# Server.configure({ port: 1234 }).listen()
node server.js
