yjd vs Editor.js
Editor.js is a block-styled editor: each paragraph, heading or image is a block, and it outputs a clean JSON array of blocks (Notion-like). yjd is a classic inline rich text editor that outputs HTML or Markdown. The right choice depends on the output model you want to store.
At a glance
| yjd | Editor.js | |
|---|---|---|
| Bundle size | ~17 KB min → ~75 KB full (gzip), tree-shakeable | ~30–40+ KB gzip (+ block plugins) |
| Dependencies | None (zero runtime deps) | None core; a plugin per block type |
| Frameworks | React, Vue 3/2, Angular, AngularJS, Svelte, vanilla | Vanilla + community wrappers |
| TypeScript types | ✓ Yes | ✓ Yes |
| License | ISC | Apache-2.0 |
| Best for | Comments, chat/prompt inputs, blog & social posts, light CMS | Block-based content, clean JSON storage |
Facts, not a scorecard — both are capable editors. Sizes are approximate and vary with configuration/plugins; figures for Editor.js come from its public docs (https://editorjs.io). The trade-offs are below.
Which should you pick?
Choose Editor.js when
- Clean structured JSON (no HTML parsing)
- Block model great for CMS-style content
- Each block is an isolated plugin
You want a Notion-style block editor and prefer structured JSON blocks as your storage format.
Choose yjd when
- Inline rich text (bold/links mid-sentence) is native
- Stores plain HTML/Markdown, not a block schema
- Smaller for a comment/chat/post surface
You want inline rich text stored as HTML/Markdown (comments, chat, posts), not a block array.
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 Slate · vs Lexical · vs Draft.js · vs ProseMirror · vs Froala · vs Trix · vs Summernote · vs Jodit · vs Toast UI Editor