Data and databases · Edition No. 15 · 9 Sep 2026

ueberdosis/hocuspocus

The ready-made server Yjs needs to share one document between people.

← Data and databasesRead the whole edition →
10

ueberdosis/hocuspocus

💎 hidden gem
Hocuspocus: shared editing server. The ready-made server Yjs needs to share a document.

2.6k stars · MIT | v4.7.1, 12 Oct 2026 | [tiptap.dev](https://tiptap.dev/docs/hocuspocus/introduction) · v4.7.1 (2026-10-12) · Track this in Rising ↗

The ready-made server Yjs needs to share one document between people.

Verified27 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 27 Oct 2026, the same day before this check.

Releases100

Latest release v4.7.1 on 12 Oct 2026.

Maturity90

Public since November 2020, a little over 5 years.

Adoption68

2,634 stars and 223 forks.

Activity65

44 commits and 18 new issues in the last 90 days.

Community80

95 contributors. 32 pull requests merged in 90 days.

Security80

A security policy says how to report a problem. 2 published security advisories.

Licence MIT | v4.7.1, 12 Oct 2026 | [tiptap.dev]: permissive: use it for anything, keep the notice
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 27 Oct 2026 from the repository on GitHub. Covered in Edition 15.

▶Repo detailsthe review · specs · pros & cons · install

What it does

Hocuspocus is a collaboration server built on Yjs, the library that merges edits from several people without conflicts. It speaks WebSocket, a connection that stays open so changes travel in both directions as they happen. It holds each open document in memory and relays every change to everyone connected. Hooks run at the points that matter, such as when somebody connects, which is where access rules belong. An add-on stores documents in SQLite with one line of configuration, and the published documentation covers other storage. The example listens on one port and only on the local address, so a reverse proxy belongs in front of it. The project also points to a hosted service for anyone who would rather not run it. It is not an editor: the editing interface stays in the browser, and this carries changes between copies of it.

Why it matters

Who it suits. Anyone who has adopted Yjs — see yjs/yjs (Edition 13 #9) — and discovered that browsers still need something to connect to. It is the exact piece a small team loses a week to, and it brings the parts that get forgotten: who may open a document, and when to write it back to storage. Skip it if one person opens one document, because then there is nothing to share and the week is spent on nothing.

Verdict. Worth an afternoon if shared editing is genuinely in the plan, and worth nothing at all if it is a maybe. It comes from the team behind Tiptap, so the documentation is real and current, and v4.7.1 on 12 October 2026 matches the published package. One caution about sizing: long-lived connections mean memory grows with the number of open documents rather than with the number of requests, which is a different shape from an ordinary web service. yjs/y-websocket is the smaller alternative when hooks and storage are not needed.

Stars2.6k
LicenceMIT | v4.7.1, 12 Oct 2026 | [tiptap.dev](https://tiptap.dev/docs/hocuspocus/introduction)
Latestv4.7.1 (2026-10-12)
Summary (Key Points)from the README
Key features
  • Plug and play backend: Hocuspocus is described as a collaboration backend built on Y.js.
  • WebSocket server: The README's usage section shows how to start a WebSocket server.
  • Local default address: By default the server listens on ws://127.0.0.1.
  • Full documentation: Detailed docs are hosted on hocuspocus.dev.
  • Managed hosting option: Tiptap Collab is offered for users who don't want to run their own hosting.
  • Community support: A Tiptap Discord server is available for help and best-practice discussion.
  • Open source license: The project is released under the MIT License.
Important
  • Usage code missing: The README refers to a usage example, but the example code does not appear in the text provided, so check the full documentation before setup.
  • Default binding is local: The default address is 127.0.0.1, so the server is reachable only from the local machine unless you change the configuration.
  • Hosting is optional but separate: Self-hosting is the default path; the managed Tiptap Collab offering is a separate paid-or-otherwise service the README mentions without pricing details.
  • Sparse README: The README is short and defers most details to the external documentation site.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Good
  • MIT, actively released, and the published package matches the repository.
  • Saving to storage is a few lines: the SQLite add-on takes a file path and nothing more.
  • It comes from the Tiptap team, so the documentation is maintained alongside the code.
Watch for
  • It is a Node.js service. If the rest of the application is written in something else, that is a second thing to deploy and restart.
  • Memory grows with open documents, not with requests, so capacity planning works differently.
  • The README is thin: storage, scaling and the other add-ons are only on the documentation site.
Install
mkdir myapp-collab && cd myapp-collab
npm init -y
npm install @hocuspocus/server @hocuspocus/extension-sqlite
# server.js
#   import { Server } from '@hocuspocus/server'
#   Server.configure({ port: 1234 }).listen()
node server.js
Screenshots
ueberdosis/hocuspocus: GitHub preview cardueberdosis/hocuspocus: Screenshot 1

On Stack Radar: Infrastructure & Security › Databases & Storage › NoSQL Databases.

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.