mininglamp-oss/octo-docs-backend — explained in plain English
Analysis updated 2026-05-18
Run the WebSocket server that keeps multiple editors' documents in sync in real time.
Manage document creation, invites, and per-document permissions through the REST API.
Export a stored document to a PDF file using the built-in Typst compilation pipeline.
Revoke or downgrade a user's access to a document while they are actively editing.
| mininglamp-oss/octo-docs-backend | 7y-9/agentsmd-check | avacocloud/avaco-deno | |
|---|---|---|---|
| Stars | 19 | 19 | 19 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | easy | moderate |
| Complexity | 4/5 | 2/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Needs Node.js 20+, MySQL, and Redis running, the typst binary is only required for PDF export.
Octo Docs Backend is the real-time collaboration engine behind a document editing product called Octo Docs. It handles the part of a Google Docs style app that lets many people type into the same document at once and see each other's changes appear instantly, using a technology called Yjs paired with a sync server called Hocuspocus. The service is split into two connected pieces. A WebSocket server keeps every connected editor's copy of a document in sync in real time, checking who is allowed to view or edit before letting changes through. A separate REST API handles document management tasks like creating documents, inviting people to a document, and issuing short-lived tokens that prove a user is allowed to join a live editing session. Documents are stored as a compact binary format in MySQL, and Redis is used to broadcast changes between servers and cache permission information so access checks stay fast. Permissions in this project belong to each document individually rather than being inherited from a folder or team, and access can be revoked in real time even while someone is actively editing. The project also includes a PDF export feature: it converts a document into a typesetting format called Typst and compiles it into a PDF using a separate lightweight program, with limits in place on file size, image count, and how long a single export is allowed to run. This is a backend service written in TypeScript for Node.js, meant to be run alongside a front-end editor rather than used on its own. Getting it running requires Node.js 20 or newer, a MySQL database, and a Redis instance, though its automated tests can run without any of those by using mocked data. The project describes itself as a runnable scaffold, meaning the core paths work but some integration pieces are still marked as unfinished with TODO notes in the code. It follows a written design contract document that spells out exactly how permissions, tokens, and document storage are supposed to behave.
The real-time backend for a collaborative document editor, syncing live edits between users and handling permissions, storage, and PDF export.
Mainly TypeScript. The stack also includes TypeScript, Node.js, Hocuspocus.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.