How to work on the Tiptap monorepo. Written for humans and AI coding assistants.
IMPORTANT for AI agents: Read the Resources sub-pages before contributing. They cover repo layout, scripts, coding standards, tests, demos, docs, and versioning. Come back to them when unsure.
- Headless rich text editor toolkit built on ProseMirror. Small Core + opt-in Extensions for React, Vue, or vanilla.
- A collection of focused packages. Many are framework-agnostic with separate bindings for React and Vue.
- Favor small pure utilities, deterministic code, explicit side effects.
- Keep packages modular. Breaking changes need a major bump and a migration path.
- Add or update demos and tests when introducing a feature.
- Work in small, iterative steps. If a task is too broad, say so and propose smaller steps.
- After changes, ask the user to review them.
- Keep PR descriptions short, clear, and easy to read. Use simple English and explain why the change is needed.
- Make single-purpose, small diffs. No sweeping changes in one PR.
- Never autocommit. Ask before committing or opening PRs.
- Run the validation checklist after edits.
- Add a Changeset for user-facing changes. No public API changes without a major bump and migration notes.
- Add or update a demo and tests for user-visible behavior. Prefer unit tests over e2e when deterministic.
Run from the repo root with pnpm <script>:
| Script | What it does |
|---|---|
dev |
Start demos on port 3000 |
build |
Build all packages via Turborepo |
lint / lint:fix |
oxlint checks |
format / format:fix |
oxfmt formatting |
test:unit |
Vitest unit tests |
test:e2e |
Playwright e2e (Chromium) |
fallow:audit |
Changed-code audit (run after edits) |
reset |
Full clean + reinstall |
Full list: Scripts
pnpm lint
pnpm build
pnpm test:unit
pnpm test:e2e
pnpm fallow:audit # must pass (verdict pass or warn, not fail)If a single package fails types, run a targeted build:
pnpm -w -F @tiptap/core build- All checks pass (lint/build/tests/fallow).
- Changeset added for user-facing changes.
- Demo added or updated for UI-visible changes.
- Short PR description explaining why.
- Node >=24.x (use nvm, fnm, or Corepack).
- pnpm with the repo lockfile. If you see unexpected errors, run
pnpm reset.
- CI dependency or lockfile errors:
pnpm resetthen rebuild. - Flaky Playwright tests: reproduce with
pnpm test:e2e:openor rerun with--trace on, inspect withpnpm test:e2e:report. - fallow audit fails: fix the introduced finding. Don't suppress it.
- Repository Layout — monorepo structure.
- Scripts — all runnable scripts.
- Coding Standards — comments, JSDoc, DRY/SOLID, complexity, fallow workflow.
- Style Checks — oxlint and oxfmt.
- Demos — running and adding demos.
- Testing — unit and e2e tests.
- Documentation — API docs, guides, demos.
- Versioning — changesets and releases.
- Commit scopes: SCOPES.md