tldraw/tldraw
Packages
Every workspace under packages/. The SDK is built from a layered set of npm packages plus a few internal-only ones used by the apps.
Layout
| Package | Public name on npm | Layer | Purpose |
|---|---|---|---|
packages/editor |
@tldraw/editor |
Core | The infinite-canvas editor runtime. No default shapes/tools/UI. |
packages/tldraw |
tldraw |
SDK | Full SDK: editor + default shapes, tools, bindings, UI, CSS. |
packages/store |
@tldraw/store |
Core | Reactive in-memory record database with migrations and side-effects. |
packages/tlschema |
@tldraw/tlschema |
Core | Record-type definitions for shapes, bindings, pages, instance, presence, assets. |
packages/state |
@tldraw/state |
Foundation | Reactive signals (Atom, Computed, Reactor). |
packages/state-react |
@tldraw/state-react |
Foundation | React hooks for @tldraw/state. |
packages/sync-core |
@tldraw/sync-core |
Foundation | Multiplayer protocol, room engine, transport adapters. |
packages/sync |
@tldraw/sync |
SDK | React hooks (useSync, useSyncDemo) over sync-core. |
packages/utils |
@tldraw/utils |
Foundation | Shared helpers (collections, throttle, retry, fractional indexing, version registry). |
packages/validate |
@tldraw/validate |
Foundation | Tiny runtime validator used by the schema. |
packages/assets |
@tldraw/assets |
Foundation | Icons, fonts, translations, embed definitions. |
packages/create-tldraw |
create-tldraw |
Tooling | The npx create-tldraw@latest scaffolder. |
packages/dotcom-shared |
internal | Internal | Types shared between the dotcom client and its workers. |
packages/worker-shared |
internal | Internal | Helpers used by multiple Cloudflare workers. |
packages/namespaced-tldraw |
internal | Internal | Namespaced re-bundling of the SDK for embedding. |
packages/mermaid |
internal | Internal | Mermaid integration helpers used by the docs. |
packages/driver |
internal | Internal | Driver / runner harness used in tests/automation. |
Reading order
If you're new to the SDK and want to understand the layers from the bottom up:
packages/state— what a signal is.packages/store— what a record is and how the store reacts.packages/tlschema— what records the document is made of.packages/editor— the runtime API and managers.packages/tldraw— default shapes/tools/UI.packages/sync-coreandpackages/sync— multiplayer.
Conventions
- Every public package has its own
api-report.api.mdand*.d.tsrollup, generated byinternal/scripts/build-api.ts. - Public exports go through
packages/<name>/src/index.ts. - Tests are colocated as
*.test.ts/*.test.tsx. - Versioning: SDK packages share a version tag (e.g.,
4.5.10). Internal packages stay at0.0.0. - License: every public package ships under the tldraw license.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.