Building the product · Edition No. 15 · 9 Sep 2026

ueberdosis/hocuspocus

The ready-made Yjs collaboration server — holds the document, broadcasts changes, and saves to your own database.

← Building the productRead the whole edition →
10

ueberdosis/hocuspocus

💎 hidden gem

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.

Stars2.4k
LicenceMIT
Latestv4.7.0 (2026-09-09), read from /releases/latest and CONFIRMED against registry.npmjs.org/@hocuspocus/server/latest, which also returned 4.7.0
Good
  • 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.
Watch for
  • 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.
Install
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
Screenshots
ueberdosis/hocuspocus: GitHub preview cardueberdosis/hocuspocus: Screenshot 1

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.