PACKAGE · RICH TEXT EDITOR

@tiptap/core

headless rich text editor

WEEKLY DOWNLOADS 5.8M
STARS 37.1K
FORKS 3.0K
OPEN ISSUES 884
GZIP SIZE 29.7 kB
UNPACKED SIZE 2.4 MB
DEPENDENCIES 0
LAST UPDATED 3mo ago
DOWNLOAD TRENDS

@tiptap/core downloads — last 12 months

Download trends for @tiptap/core1 download series from Jun 2025 to May 2026. Use left and right arrow keys to inspect monthly values.011.5M23.0M34.5M46.0MJun 2025SepDecMarMay 2026
@tiptap/core
ABOUT @TIPTAP/CORE

@tiptap/core is a headless, framework-agnostic rich text editor toolkit built on top of ProseMirror. It addresses the common challenge of integrating sophisticated WYSIWYG editing experiences into web applications without being tied to a specific UI rendering strategy. This allows developers to maintain full control over the presentation layer while leveraging a powerful and extensible editing engine.

The core philosophy of TiTap is to provide a 'renderless' component approach. This means the package focuses on the editor's logic, state management, and commands, abstracting away the DOM manipulation and rendering. This design choice targets developers who require deep customization or want to integrate rich text editing into unique UIs, rather than using off-the-shelf editor components.

Key API patterns revolve around extensions and the editor instance. Developers define editor behavior by composing extensions, each encapsulating specific nodes, marks, commands, and plugins. The `useEditor` hook (in framework-specific integrations) or the core `Editor` class provides access to commands like `editor.chain().focus().toggleBold().run()` for programmatic control, and event listeners for state changes.

While @tiptap/core itself is framework-agnostic, it integrates seamlessly with popular frontend frameworks via dedicated extensions and bindings. These include official integrations for React, Vue, and Vanilla JS, enabling developers to use TiTap within their existing ecosystems. The ProseMirror foundation ensures compatibility with its extensive plugin system and community contributions.

With a notable weekly download count of 11.7M and 37.1K GitHub stars, @tiptap/core is a mature and widely adopted solution. Its unpacked size is 2.4 MB, with a compressed gzip bundle size of 29.7 kB, making it relatively efficient for its capabilities. This balance allows for powerful feature sets without an excessive performance penalty.

Developers should be aware that the 'headless' nature requires building the UI from scratch or using community-provided UI components. While offering maximum flexibility, this also means a greater initial investment in frontend development compared to editors that bundle UI elements. The ProseMirror dependency, while powerful, has its own learning curve for advanced customization.

WHEN TO USE
  • When building a custom user interface for a rich text editor, leveraging TiTap's logic and command API.
  • When integrating advanced text editing features like custom node types or mark combinations into a Vue, React, or Vanilla JS application.
  • When you need programmatic control over the editor state and wish to trigger actions like applying formatting or inserting content via custom UIs or application logic.
  • When working within a project that already uses ProseMirror and you want to simplify its integration and extend its capabilities with a more modular approach.
  • When the flexibility to dictate the exact rendering of editor elements, including inputs, buttons, and content, is a primary requirement.
  • For applications requiring features like real-time collaboration or complex document structures that can be managed through ProseMirror's underlying architecture.
WHEN NOT TO USE
  • If your application only requires basic text input and formatting, consider using simpler HTML input elements or lighter styling libraries.
  • When you need an out-of-the-box rich text editor with a pre-built UI and administration panel, without custom frontend development.
  • If your project has strict constraints on JavaScript bundle size and does not require advanced rich text features, as the core editor logic can still add overhead.
  • When you prefer a WYSIWYG editor that abstracts away the underlying editing engine entirely, opting for a more 'batteries-included' solution.
  • If the primary goal is to quickly embed a functional rich text editor with minimal custom UI implementation, as TiTap necessitates building the interface components.

CORRECTIONS

Spot wrong data here?

A short note helps us fix it.

Anonymous · No account · No email back

COMPARISONS 4
@tiptap/core vs slate ★ 31.7K · 1.2M/wk @tiptap/core vs quill ★ 47.1K · 1.8M/wk @tiptap/core vs lexical ★ 23.5K · 1.6M/wk @tiptap/core vs prosemirror-state ★ 232 · 6.1M/wk