Why We Store Documents in ProseMirror JSON at WikiMind
While people argue about AI-first editors and collaborative editing, we chose ProseMirror JSON at WikiMind: a structured node tree, precise comments, and a foundation for a complex editor.

When everyone around us starts debating “AI-first editors” and collaborative editing again, we at WikiMind did not go with Markdown for the vibe or HTML because “it’ll do.” We chose ProseMirror JSON.
Why? It’s not just text, but a structured tree of nodes: it natively handles @mention, tables with merged cells, nested blocks, LaTeX formulas, and callout blocks. No hacks and no magic in production on a Friday evening 😅
The main benefit is precise anchoring of comments to character positions. When the document changes, we can recalculate comment positions on every edit, instead of hoping everything won’t shift after a single paragraph insertion.
Markdown starts to creak under this pretty quickly, HTML is too focused on rendering rather than meaning, and a JSON tree gives us predictability, extensibility, and a solid foundation for a complex editor.