Build a CMS where editors create blog posts with paragraphs, headings, and images, and you store the result as structured JSON for easy re-rendering.
Add a rich note-taking editor to your app that lets users write formatted content without generating unpredictable HTML.
Create a custom block type (e.g. a code snippet or tweet embed) by writing a simple Tool plugin and registering it with the editor.
Embed a distraction-free content editor into a React, Vue, or plain HTML page without pulling in a heavy framework dependency.
| codex-team/editor.js | blakeblackshear/frigate | ianstormtaylor/slate | |
|---|---|---|---|
| Stars | 31,730 | 31,780 | 31,670 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | easy | hard | easy |
| Complexity | 2/5 | 4/5 | 3/5 |
| Audience | developer | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
Install via npm as @editorjs/editorjs, each block type is a separate npm package you add individually.
Editor.js is a rich text editor for the web that is built around a block-based model rather than a traditional continuous document model. In most editors, the entire document is one blob of HTML, which makes it difficult to work with the content programmatically. Editor.js instead treats each element, such as a paragraph, heading, image, video, or list, as a separate self-contained block with its own data structure. When you save content, you get clean, structured JSON rather than a tangle of HTML. The editor works through a plugin system where each type of block is its own Tool. There are ready-made tools for common content types, and developers can write their own tools by implementing a simple API. Tools can also define inline formatting, like bold or links, that work within a block. The editor itself is the host that renders these tools and manages their order, keyboard navigation, and data collection. From the user's perspective, pressing Enter creates a new block, the Tab key opens a toolbox to choose a block type, and selected text reveals an inline formatting toolbar. Everything is keyboard accessible. You would use Editor.js when building a content management system, a note-taking application, a blog platform, or any interface where users create structured content that you need to store and re-render reliably. The block-based JSON output is easy to validate, transform, and display in different contexts compared to raw HTML. The tech stack is TypeScript, and it is installed via npm as @editorjs/editorjs. It runs in modern browsers and has no framework dependency, so it works in plain HTML pages as well as inside React, Vue, or Angular applications.
Editor.js is a block-based web text editor that saves content as clean JSON instead of messy HTML, making it easy to store, transform, and display structured content reliably.
Mainly TypeScript. The stack also includes TypeScript, JavaScript.
Apache 2.0, use freely for any purpose including commercial projects, modify and redistribute with attribution.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.