Why We Store Documents in ProseMirror JSON at WikiMind
When you have more than just notes — a live editor with @mentions, tables, formulas, and comments — Markdown starts to break down, and HTML becomes a pain. At WikiMind, we chose ProseMirror JSON as the primary storage format.

When you have more than just notes — a live editor with @mentions, tables, formulas, and comments — Markdown starts to “drift,” and HTML is basically a path to pain. At WikiMind, we chose ProseMirror JSON as the primary storage format.
Why is this a good fit? It’s a structured tree of nodes where @mentions, tables with merged cells, nested blocks, LaTeX formulas, and callout blocks all live natively. No hacks and no Friday-evening magic in production.
The best part is comments. We can attach them precisely to character positions in the document and correctly recalculate them on every edit. For collaborative editors, which are hot again right now, this is absolutely a must-have.
In short: less chaos in the data, more control over the editor’s structure and behavior.