Rune vs Slate

A Slate alternative that runs beyond React.

Slate is a React framework for building editors — you own the rendering, the UI, and collaboration. Rune is a ready-made editor you configure and drop in, in any framework or none, with a toolbar and real-time collaboration included.

Rune vs Slate

runeSlate
Zero runtime dependenciesYesNo
No build step requiredYesNo
Headless / CSS-variable themingYesPartial — render your own
Config-driven toolbar & menusYesNo — you build the UI
Works without a frameworkYesNo — React only
Real-time collaborationBuilt in (Yjs)No — DIY
LicenseMITMIT
Why switch

What you gain with Rune.

  • 01

    Not React-only

    Slate is React-exclusive. Rune runs in vanilla JS, React, Vue, Svelte, and as a Web Component from one package.

  • 02

    A real editor, not a framework

    Slate gives you a controlled component to build on. Rune ships toolbar, menus, and blocks from config — no editor to assemble.

  • 03

    Collaboration included

    Slate leaves real-time collaboration to you. Rune's Yjs layer is opt-in and complete, with presence, comments, and tracked changes.

Migrating from Slate

Slate is a React framework where you control rendering and behaviour. Rune is a ready-made editor you configure and render with one component.

Slate (React)
import { useState, useMemo } from 'react'
import { createEditor } from 'slate'
import { Slate, Editable, withReact } from 'slate-react'

function Editor() {
  const editor = useMemo(() => withReact(createEditor()), [])
  const [value, setValue] = useState([
    { type: 'paragraph', children: [{ text: 'Hello' }] },
  ])
  return (
    <Slate editor={editor} initialValue={value} onChange={setValue}>
      <Editable />
    </Slate>
  )
}
Rune (React)
import { RuneEditor } from '@parityfox/rune-editor/react'
import config from './rune.config.js'
import '@parityfox/rune-editor/styles'

export default function Editor() {
  return (
    <RuneEditor
      extensions={config.extensions}
      content="<p>Hello</p>"
      onChange={(html) => console.log(html)}
    />
  )
}
Being fair

When to choose Slate instead

Slate gives you complete control over rendering in React, with a large community and plugin ecosystem. If you're React-only and want to design every detail of the editing experience yourself, Slate's flexibility is its strength.

Questions

Can I use Rune outside React, unlike Slate?
Yes. Slate is React-only; Rune ships vanilla, React, Vue, Svelte, and Web Component adapters.
Does Rune include a toolbar, unlike Slate?
Yes. Slate leaves the UI to you; Rune renders the toolbar, bubble menu, and slash menu from config.
Does Rune handle collaboration?
Yes — an opt-in Yjs layer. Slate has no built-in real-time collaboration.

Try the framework-agnostic alternative.

Use Rune in React — or anywhere else. Same editor, five adapters, zero dependencies.