// the find
badlogic/jot
Minimal self-hosted markdown editor with inline comment threads
jot is a self-hosted, single-owner markdown editor with real-time collaborative editing and inline comment threads, explicitly designed to be driven by both humans in a browser and agents via a CLI. It's for someone who wants a lightweight shared-notes server with granular per-note share links (view/comment/edit) instead of pulling in Notion or a full wiki.
The agent integration is the actual differentiator here, not a bolted-on afterthought: share links double as CLI credentials (no OAuth flow), and there's a dedicated modal that hands an agent copy-paste setup instructions tied to the current note. Storing collaborative state as JSON with `.md` files derived alongside it is a smart compromise — you get a CRDT-backed source of truth for concurrent editing plus grep/git/backup-friendly files on disk without extra sync logic. Toggling share access level without changing the URL is a small but correct design call that avoids link rot when permissions change. Install footprint is tiny (single npm global install, one `serve` command, optional Docker), which matches the 'minimal' claim instead of just asserting it.
No test directory anywhere in the tree, which is a real liability for a real-time collaborative editor — concurrent-edit and conflict-resolution bugs are exactly the kind that regress silently without coverage. Auth is effectively one owner password plus API keys; shared-mode comment attribution is just a client-supplied `--name` flag, so anyone with a comment-level share link can post as literally any name with zero verification. The README never explains what's actually backing the real-time sync (no mention of Yjs/OT/CRDT specifics), so you're trusting an unexplained mechanism for the one piece of this that's hardest to get right. Frontend is plain JS (`app.js`, `collab-editor.js`) with no bundler or type-checking visible, which is a odd contrast to the TypeScript-written server and will get harder to maintain as the client logic grows.