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
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.
Why it matters
Edition 13 #9 recommended Yjs for shared Grasppy maps 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 the Postgres you already run.
- It comes from the same team as Tiptap, so the documentation is real and kept up to date.
- It is a Node.js service and your backend is Python. 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 Grasppy really gets shared maps. If one person opens one map, this is a week spent on nothing.
mkdir grasppy-collab && cd grasppy-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
