Understand Tiptap's rich-text vocabulary — the extension model, Nodes vs Marks, command chains, and CRDT collaboration.
0 / 5 completed
1 / 5
In a PR review, a colleague adds a custom Tiptap extension. A senior engineer asks what Tiptap extensions provide. The correct answer is:
Tiptap extensions encapsulate schema definitions (Nodes/Marks), ProseMirror plugins, keyboard shortcuts, and commands into a single unit. Extensions are composed to build the editor's feature set.
2 / 5
During a standup, a feature requires custom block-level content (e.g., a callout box). You explain the difference between a Tiptap Node and a Mark:
Tiptap Nodes are structural elements (block or inline) in the document tree. Marks annotate ranges of existing text with formatting or metadata (bold, link, comment highlight).
3 / 5
A code review flags that a custom command calls editor.chain() but forgets .run(). In a PR comment, you explain that Editor.chain() works as:
editor.chain() starts a command chain. Commands are queued and dispatched together as one ProseMirror transaction only when .run() is called at the end.
4 / 5
During a design review, you need to modify the document programmatically without going through Tiptap commands. You use a Transaction. What is a ProseMirror Transaction in Tiptap's context?
A ProseMirror Transaction describes document mutations (insertions, deletions, mark changes). Dispatching it via editor.view.dispatch(tr) produces the new editor state and triggers re-renders.
5 / 5
In a standup, the collaborative editing feature is causing conflicts. You propose using Tiptap's Collaboration extension with Y.js. A junior asks what Y.js provides. The correct answer is:
Y.js is a CRDT (Conflict-free Replicated Data Type) library. It allows multiple clients to edit concurrently and merges all changes automatically — no central lock or server-side conflict resolution needed.