A model-driven, collaboration-ready Editor.js engine split into focused packages.
| Package | Description |
|---|---|
@editorjs/sdk |
Shared contracts — interfaces, base event classes, EventBus |
@editorjs/model |
In-memory document model (EditorJSModel, BlockNode, TextNode, caret management) |
@editorjs/dom-adapters |
Binds model nodes to DOM inputs (DOMBlockToolAdapter, CaretAdapter, FormattingAdapter) |
@editorjs/collaboration-manager |
Operational transformation, batching, undo/redo, OT WebSocket client |
@editorjs/core |
Orchestrator — IoC container, plugin/tool lifecycle, EditorAPI |
@editorjs/ui |
Default UI shell (EditorjsUI, BlocksUI, Toolbar, InlineToolbar, Toolbox) |
@editorjs/ot-server |
Standalone WebSocket OT server (OTServer, DocumentManager) |
playground |
Vite dev sandbox for manual testing |
In-depth architecture, flow, and API docs live in docs/.
Quick links:
- Architecture overview
- Data model
- Input handling & caret
- Plugins & Tools
- Collaboration & Undo/Redo
- Event system
# Install all package dependencies
yarn install
# Build all packages
yarn workspaces run build
# Run tests for a specific package (e.g. model)
cd packages/model && yarn test
# Start the playground
cd packages/playground && yarn dev
# Start the OT server (Docker)
docker compose upThis project is in active development with many ideas being formed on the fly. If you'd like to contribute — whether it's code, documentation, ideas, or feedback — we'd love to hear from you!
Here are some ways to get involved:
- Code contributions: Check out Good First Tasks or reach out to discuss larger features
- Documentation & guides: Help us improve and expand our docs
- Tool development: Build new tools or adapters for the ecosystem
- Feedback & ideas: Share your thoughts and suggestions in discussions or on our Telegram Chat
- Custom requirements: Need something specific? Contact the CodeX team at team@codex.so
See our Contributing guide for more details.
You can support project improvement and development of new features with a donation to our team.
Donate via OpenCollective
Donate via Crypto
Donate via Patreon
Donations to open-source products have several advantages for your business:
- If your business relies on Editor.js, you'll probably want it to be maintained
- It helps Editor.js to evolve and get the new features
- We can support contributors and the community around the project. You'll receive well organized docs, guides, etc.
- We need to pay for our infrastructure and maintain public resources (domain names, homepages, docs, etc). Supporting it guarantees you to access any resources at the time you need them.
- You can advertise by adding your brand assets and mentions on our public resources
Support us by becoming a sponsor. Your logo will show up here with a link to your website.
Thank you to all our backers!