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 withnpm: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/nodepinned 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).- Workers —
wrangler(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]anddependabot[bot]commits in the git history). Thedependabot-dedupe.ymlworkflow keeps multi-PR series tidy. i18n-upload-strings.ymlandi18n-download-strings.ymlautomate translation key updates.
Related
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.