Skip to content

editor-js/document-model

Repository files navigation

Editor.js Logo

@editorjs/document-model

A model-driven, collaboration-ready Editor.js engine split into focused packages.

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

Documentation

In-depth architecture, flow, and API docs live in docs/.

Quick links:

Development

# 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 up

Want to contribute?

This 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.

Like Editor.js?

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

Why donate

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

Sponsors

Support us by becoming a sponsor. Your logo will show up here with a link to your website.

Become a Sponsor

Backers

Thank you to all our backers!

Become a Backer

Community

About

❗️WIP❗️

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors