Open-Source Wikis

/

tldraw

/

Reference

/

Dependencies

tldraw/tldraw

Dependencies

What the repo pulls in and why. Versions reflect the worktree at commit 15caa2104.

Repo-root devDependencies

From package.json:

Dependency Why
lazyrepo Incremental task runner. The whole repo's dev/build flow goes through lazy run.
oxlint, oxfmt, oxlint-tsgolint Lint and format. Replaces ESLint+Prettier in steady state, though the legacy eslint.config.mjs still hosts custom plugins.
vitest, @vitest/ui, @vitest/coverage-v8, vitest-canvas-mock Test runner and helpers.
@microsoft/api-extractor Generates api-report.api.md files.
tsx Runs TypeScript-authored scripts under internal/scripts/.
typescript ^5.8.3, @typescript/native-preview TS compiler. tsgo is the native preview used by internal/scripts/typecheck.ts.
husky, lint-staged Git hooks + per-staged-file commands.
vercel The Vercel CLI for the docs site.
@swc/core Fast TS transpile in places where esbuild's TS subset is too narrow.
esbuild Used by internal/scripts/build-package.ts to bundle SDK packages.
@types/* Type packages for Node, React, etc.
purgecss, svgo Asset post-processing.
@sentry/cli Sentry release upload.
@yarnpkg/types For typed yarn.config.cjs constraints.

Resolutions

The resolutions block in package.json patches:

  • domino@^2.1.6 — patched via .yarn/patches/domino-npm-2.1.6-b0dc3de857.patch.
  • @microsoft/tsdoc@npm:0.15.1 — patched via .yarn/patches/@microsoft-tsdoc-npm-0.15.1-e24295d9bd.patch.
  • canvas — replaced with npm:empty-npm-package@1.0.0. The accompanying comment explains pdf.js pulls it as an optional dep that we don't actually need.
  • @types/node pinned to ^22.15.31.

SDK runtime dependencies

@tldraw/editor (per packages/editor/package.json):

  • @tiptap/core, @tiptap/pm, @tiptap/react — rich-text editing inside text-bearing shapes.
  • @tldraw/state, @tldraw/state-react — reactive primitives.
  • @tldraw/store, @tldraw/tlschema — store and schema.
  • @tldraw/utils, @tldraw/validate — helpers.
  • classnames — class concatenation.
  • eventemitter3 — event emitter.
  • idb — IndexedDB persistence.
  • is-plain-object — defensive type checks.
  • rbush — R-tree spatial index.

Peer: react ^18.2.0 || ^19.2.1, react-dom ^18.2.0 || ^19.2.1.

tldraw (the SDK package) re-exports @tldraw/editor and adds React-only helpers.

@tldraw/sync adds @tldraw/sync-core, plus the WS adapter dependencies it needs.

App dependencies

  • apps/dotcom/client — React Router, Sentry, Vite, Vite plugins (Sentry source maps), Tailwind/CSS infra.
  • apps/docs — Next.js, MDX, Tailwind, @lingual/i18n-check.
  • apps/examples — Vite, Playwright (devDep).
  • Workerswrangler (devDep), worker-shared (workspace), various worker-specific deps.
  • apps/vscode/extension — VS Code extension API typings, esbuild.
  • apps/mcp-app — an MCP SDK plus Cloudflare Workers infra.

Templates

Each template under templates/ has its own dependency set sized to its purpose. For example, templates/sync-cloudflare/ pulls @tldraw/sync plus wrangler; templates/agent/ adds an LLM client; templates/shader/ adds WebGL utilities.

Engine

The repo requires Node ^20.0.0 (see engines in package.json). Yarn 4.12.0 is pinned via packageManager.

Audit and updates

  • Dependabot is configured (see huppy-bot[bot] and dependabot[bot] commits in the git history). The dependabot-dedupe.yml workflow keeps multi-PR series tidy.
  • i18n-upload-strings.yml and i18n-download-strings.yml automate translation key updates.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Dependencies – tldraw wiki | Factory