Editor.js — это блоковый WYSIWYG-редактор для веба и мобильных приложений, ориентированный на хранение и передачу содержимого в виде структурированных чистых данных в формате JSON. Проект представляет собой модульный инструмент, который отделяет представление контента от его хранения, предоставляя разработчикам набор блоков (параграфы, заголовки, списки, изображения и пользовательские блоки) и API для интеграции в клиентские приложения. Архитектура редактора подразумевает расширяемость через плагины, что позволяет добавлять новые типы блоков и поведение без изменения ядра.
Изначально Editor.js разрабатывался как альтернатива WYSIWYG-редакторам, возвращающим HTML, с акцентом на получение предсказуемой и парсируемой структуры данных. Это упрощает обработку содержимого на серверной стороне, сохранение в базах данных и последующую рендеризацию в различных средах. В силу своей модульности и API он часто используется в проектах, где важны совместимость с современными фреймворками и возможность создавать кастомные блоки и инструменты для редактирования.
- Блоковая структура: контент представлен набором независимых блоков, каждый из которых имеет тип и данные, что обеспечивает гибкую композицию документа и простоту манипуляций.
 - Выход в формате JSON: редактор формирует чистую структуру данных без встраиваемого HTML, пригодную для хранения, валидации и дальнейшей обработки.
 - Плагино-ориентированная архитектура: поддержка расширений и пользовательских блоков позволяет добавлять новый функционал и интерфейсные элементы без вмешательства в ядро.
 - Редактирование WYSIWYG: пользовательский интерфейс обеспечивает удобное интерактивное редактирование с визуальной обратной связью, хотя рендер сохраняемого формата отделён от визуального представления.
 - API для интеграции: предоставляются методы для инициализации, получения и установки данных, управления сохранением и взаимодействия с внешними компонентами приложения.
 - Кросс-платформенность: адаптируется для использования в веб-приложениях и в мобильных оболочках, где требуется структурированное хранение контента.
 - Валидация и консистентность данных: благодаря строгой структуре JSON проще реализовать валидационные правила и миграции формата при развитии приложения.
 - Поддержка мультимедиа через плагины: базовое ядро концентрируется на структуре, а работа с изображениями, видео и другими типами контента обычно реализуется через дополнительные блоки и обработчики.
 - Управление состоянием и откатом: реализация механизмов отмены/повтора и работы с состоянием зависит от конкретной интеграции и расширений, что даёт гибкость в выборе подхода.
 - Сообщество и экосистема: вокруг редактора сформировались наборы плагинов и примеров интеграций, которые облегчают подключение в разнообразные проекты и демонстрируют типичные сценарии использования.