tldraw/tldraw
Fun facts
A small collection of trivia about the codebase.
The empty package trick
package.json replaces the canvas npm package with an empty stub via the resolutions field:
"resolutions": {
"canvas": "npm:empty-npm-package@1.0.0"
}The accompanying inline comment explains why:
our examples app depenends on pdf.js which pulls in canvas as an optional dependency. it slows down installs quite a bit though, so we replace it with an empty package.
The typo (depenends) survives in the source as of 15caa2104.
VOICE.md
The repo includes a 23 KB VOICE.md document at the root. Most repos do not ship a voice guide. tldraw's is opinionated about tone, headings, and product writing — and it is paired with AGENTS.md, which adds: "Use sentence case for Markdown headings, UI labels, docs titles, PR titles, and issue titles."
The Editor megafile
packages/editor/src/lib/editor/Editor.ts clocks in at 11,540 lines. It is the public face of the runtime API, and it is also the most-touched non-generated source file: 28 commits in the last 90 days.
Watermarks live in code
packages/editor/src/lib/license/ is a real subsystem, and packages/editor/src/lib/watermarks.ts is 11.6 KB of license-watermark logic. The SDK is free to use in development; production use requires a license key.
Skills as project artifacts
The repo ships a directory of "skills" (skills/) plus three symlinks (.agents/skills, .claude/skills, .cursor/skills) so the same workflow knowledge is available to any of the agent CLIs that look in their respective folders. AGENTS.md notes: "Keep skills/ as the source of truth."
A bot named Huppy
internal/huppy/ is referenced from the root package.json (yarn dev-huppy) and shows up in the contributor list as huppy-bot[bot] with 89 commits — the bot is the seventh-most-prolific committer.
The MCP app
apps/mcp-app/ is a Model Context Protocol server. The same monorepo therefore ships:
- The SDK to draw with.
- The hosted app to draw in.
- A docs site to learn from.
- A VS Code extension to edit
.tldrfiles locally. - An MCP server so AI agents can drive the canvas.
The 12 templates
templates/ holds 12 starter projects ranging from a simple Vite app to "branching-chat" (canvas-powered AI chat with visual branching) and "shader" (WebGL shaders that respond to canvas interactions). Most repos ship a starter; tldraw ships an entire shelf.
Zero downtime, seven machines
The most recent operational change in the worktree, commit f43f2cd36, scales the Zero view-syncer to seven Fly machines. The accompanying flyio-view-syncer.template.toml and flyio-replication-manager.template.toml are the most-changed config files outside generated reports.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.