Rune vs ProseMirror

A ProseMirror alternative that's batteries-included.

ProseMirror is a powerful toolkit — you assemble the schema, plugins, and UI yourself, across many packages. Rune gives you the finished editor from a single zero-dependency package and one config object, with collaboration built in.

Rune vs ProseMirror

runeProseMirror
Zero runtime dependenciesYesNo — many prosemirror-* packages
No build step requiredYesNo
Headless / CSS-variable themingYesPartial — bring your own CSS
Config-driven toolbar & menusYesNo — you build the UI
Works without a frameworkYesYes
Real-time collaborationBuilt in (Yjs)Add-on (collab module)
LicenseMITMIT
Why switch

What you gain with Rune.

  • 01

    Batteries included

    ProseMirror is a toolkit: you wire schema, plugins, and UI. Rune ships a working editor with a toolbar, bubble menu, and slash menu from one config.

  • 02

    One package, zero dependencies

    ProseMirror spreads across many prosemirror-* packages. Rune is a single zero-dependency package.

  • 03

    Collaboration ready

    ProseMirror's collaboration is a low-level module you implement around. Rune's Yjs layer is opt-in and complete.

Migrating from ProseMirror

ProseMirror gives you primitives — a schema, a state, and a view — to build an editor. Rune gives you the finished editor from a config object.

ProseMirror
import { EditorState } from 'prosemirror-state'
import { EditorView } from 'prosemirror-view'
import { schema } from 'prosemirror-schema-basic'
import { exampleSetup } from 'prosemirror-example-setup'

const state = EditorState.create({
  schema,
  plugins: exampleSetup({ schema }),
})
new EditorView(document.querySelector('#editor'), { state })
Rune
import { createFromConfig } from '@parityfox/rune-editor'
import config from './rune.config.js'
import '@parityfox/rune-editor/styles'

const editor = createFromConfig('#editor', config, {
  content: '<p>Hello</p>',
  onChange: (html) => console.log(html),
})
Being fair

When to choose ProseMirror instead

ProseMirror is the gold standard when you need total control of the document model and schema — it powers many production editors, including Tiptap. If you're building something highly custom on the most battle-tested foundation, ProseMirror is the right tool.

Questions

Is Rune built on ProseMirror?
No. Rune has its own document model and zero runtime dependencies. ProseMirror is a separate toolkit Rune does not use.
Do I have to build the UI like with ProseMirror?
No. Rune renders the toolbar, bubble menu, and slash menu from config. ProseMirror leaves the UI to you.
How does collaboration compare?
Both can use Yjs. ProseMirror exposes a low-level collab module; Rune ships a complete opt-in collaboration layer.

Try the batteries-included alternative.

Skip assembling a toolkit — Rune is a complete editor from one config object.