yjd vs Slate
Slate is a completely customizable editor framework — for React only. You build the editing experience yourself, rendering nodes as React components. That power comes with a steep learning curve and a React lock-in. yjd gives you a working editor out of the box that runs in React, Vue, Angular and vanilla alike.
At a glance
| yjd | Slate | |
|---|---|---|
| Bundle size | ~17 KB min → ~75 KB full (gzip), tree-shakeable | ~40–50 KB gzip (+ React) |
| Dependencies | None (zero runtime deps) | React (peer dependency) |
| Frameworks | React, Vue 3/2, Angular, AngularJS, Svelte, vanilla | React only |
| TypeScript types | ✓ Yes | ✓ Yes |
| License | ISC | MIT |
| Best for | Comments, chat/prompt inputs, blog & social posts, light CMS | Fully custom, bespoke React editors |
Facts, not a scorecard — both are capable editors. Sizes are approximate and vary with configuration/plugins; figures for Slate come from its public docs (https://docs.slatejs.org). The trade-offs are below.
Which should you pick?
Choose Slate when
- Total control: render any node as a React component
- Unopinionated, build exactly what you want
- Great for novel editing UX in React
You are building a bespoke React editor with unusual behaviour and want to control every node yourself.
Choose yjd when
- Works out of the box — no editor to build
- Runs in any framework, not just React
- Tiny, dependency-free, TS types included
You want a ready editor that works everywhere and do not want to build the editing layer.
Try yjd
A real editor, ~17 KB, zero dependencies. Install: npm i @oix1987/yjd. It runs in React, Vue, Angular and vanilla.
More comparisons: vs Tiptap · vs Quill · vs TinyMCE · vs CKEditor 5 · vs Lexical · vs Draft.js · vs ProseMirror · vs Editor.js · vs Froala · vs Trix · vs Summernote · vs Jodit · vs Toast UI Editor