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
| rune | Slate | |
|---|---|---|
| Zero runtime dependencies | Yes | No |
| No build step required | Yes | No |
| Headless / CSS-variable theming | Yes | Partial — render your own |
| Config-driven toolbar & menus | Yes | No — you build the UI |
| Works without a framework | Yes | No — React only |
| Real-time collaboration | Built in (Yjs) | No — DIY |
| License | MIT | MIT |
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.
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>
)
}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)}
/>
)
}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.