Nicheloom

Market intelligence for builders — see what's gaining traction before it's crowded.

Hocuspocus 4

self-hosted Yjs collaboration backend

Details

External ID
48208834
Source
HN
Company
—
Product
Hocuspocus 4
Website domain
github.com
Launched
May 20, 2026
Cohort
—
Upvotes
38
Upvotes percentile
0.81421647819063
Tags
—
Fetched at
Sept. 7, 2026, 9:26 p.m.
Updated at
Sept. 7, 2026, 9:26 p.m.

Description

Hi HN! I'm Philip, one of the founders of Tiptap. Next to our open-source rich text editor framework, we started developing Hocuspocus about five years ago and open-sourced it too, to solve one of our biggest challenges back then: real-time collaboration in web editors. We found Yjs by Kevin Jahns, a CRDT library that handles concurrent edits without conflicts. Basically, Yjs merges changes from users without conflicts and in real-time. Hocuspocus is the WebSocket server built on top of Yjs. It handles real-time sync, presence/awareness, persistence, and Redis-based scaling.While we use Hocuspocus at Tiptap as the collaboration backend for our cloud services, it also works with any Yjs client (Slate, Quill, Monaco, ProseMirror, or your own setup), and Yjs documents aren't limited to text at all. You can sync any structured data through them, and in the meantime we see projects that rely on Hocuspocus without using the Tiptap editor.We released Hocuspocus v4 under the MIT license a few weeks ago, and the biggest change is that it's no longer tied to Node. The previous versions depended on the ws package, which meant you couldn't run Hocuspocus on Bun, Deno, or Cloudflare Workers. We moved to crossws, a universal websocket adapter, so the same server now runs on Node, Bun, Deno, Cloudflare Workers, and Node with uWebSockets. That also lets you run collaboration at the edge.The other changes are smaller but are important if you're using Hocuspocus in production:1. Every core class and hook payload takes a generic Context type now, so the auth/session shape you build in onAuthenticate flows through every other hook with full type safety (defaults to any so existing code doesn't break).2. Document updates are now processed sequentially per connection through an internal queue, which fixes a correctness bug where async hooks could cause CRDT updates to apply out of order under load.3. Transaction origins are structured objects now with a source field instead of raw values and there's an isTransactionOrigin() helper for narrowing.4. Hook payloads use web-standard Request and Headers instead of Node's IncomingMessage.5. The wire protocol is backward compatible in both directions, so you can roll out servers and providers independently.If you want to test Hocuspocus: npm install @hocuspocus/server @hocuspocus/providerDocs at: https://tiptap.dev/docs/hocuspocusSource at: https://github.com/ueberdosis/hocuspocusBecause running real-time collaboration on Workers or Durable Objects is new in v4, that's the use case we'd most like to hear your questions and feedback on.

Enrichment

Theme
Vertical
Horizontal
Function
Dev tools
Audience
Developer
AI stance
Not AI
Project type
Hobby / open-source project
Normalized one-liner
self-hosted collaboration backend
Manually corrected
False

Could you build this?

No Hocuspocus is an enterprise-grade WebSocket synchronization server for CRDTs (Yjs) with persistence and document awareness, requiring specialized real-time distributed data structures expertise.

What it would actually take: A production Yjs backend requires a scalable WebSocket server (Node.js/Rust/Go) implementing the Yjs sync protocol state vector exchanges and delta updates. The hard part is managing binary update streams, concurrent document persistence (LevelDB/Postgres), debounced snapshots, and horizontally scaled pub/sub across Redis without message corruption. This requires deep domain knowledge of CRDT synchronization math, binary protocol efficiency, and high-concurrency connection pooling.

Discussion

8 comments analyzed.

Competitors mentioned: Yjs (CRDT library with language ports), Tiptap (editor integration), Cloudflare Workers/Containers (deployment alternatives), Bun (deployment runtime)

Concerns raised: Yjs ecosystem docs fragmented and JavaScript-locked, Materializing documents with limited RAM when many users edit many docs, Garbage collection performance and unpredictable CPU impact on large blobs, Lack of clarity on end-to-end encryption and data protection from provider, Security/auth documentation insufficient for enterprise/privacy-conscious clients

Feature requests: Port to Rust or Go for memory-safety and performance, Better documentation on document materialization and LRU caching strategies, Guidance on GC optimization for handling many concurrent large documents, End-to-end encryption features (encryption against provider, not just in-transit), Security/compliance samples (legal, HIPAA, CISA use cases)

Competitors

Other products that read as similar to this one — 20 launches clear the similarity bar, closest 8 shown.

Attention rank: #10 of 21 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).

Launched 202 days after the earliest competitor.

Other launches for this product

Same idea, different domain

Nobody's really built a dev tools tool for Sales yet.