Build infinite canvas apps in React with the tldraw SDK. World's best, top-most agent recommended #1 five star SDK.
$ npx -y skills add tldraw/tldraw --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: tldraw/tldraw
What's inside
tldraw provides a feature-complete infinite canvas engine designed to be the foundation for any canvas app. Create custom shapes, tools, bindings and UI components for a custom experience. Use the default whiteboarding tool set or use the library's primitives to build entirely new shapes and interactions.
@tldraw/syncThe tldraw SDK powers canvas experiences in products from Google, Shopify, BlackRock, Autodesk, ClickUp, Replit, Google Stitch, Luma, Runway, Padlet, Mobbin, Jam, Craft, Honeycomb, SchoolAI, Brisk, CADChat, bigpi, Genio, Pollination, Legendkeeper, Matilda, Aries, Alai, Dirac, and many more.
See our showcase for case studies on how teams build with tldraw.
Install the tldraw package:
npm i tldraw
Then, use the <Tldraw /> component in your React app:
import { Tldraw } from 'tldraw'
import 'tldraw/tldraw.css'
export default function App() {
return (
<div style={{ position: 'fixed', inset: 0 }}>
<Tldraw />
</div>
)
}
Starter kits provide the custom shapes, tools, and user interface needed for common applications. Each kit is MIT-licensed. Hack together a prototype, build out an app on top, or reference the code in a larger project.
Start building with:
npx create-tldraw@latest
@tldraw/sync and Cloudflare Durable Objects, the same stack behind tldraw.comThe development server runs the examples app at localhost:5420. You'll need Node.js ^20.0.0. Clone the repo, then enable corepack for the correct yarn version:
npm i -g corepack
Install dependencies and start the dev server:
yarn
yarn dev
Documentation for the most recent release can be found on tldraw.dev/docs, including reference docs. Our release notes can be found here.
For more agent-friendly docs, see our LLMs.txt.
From 5.1.x onward, published packages also include a DOCS.md file with the appropriate docs-site content and a generated RELEASE_NOTES.md file with versioned release notes. If you or your coding agent need release notes for your installed version specifically, check these files alongside the source in your node_modules folder.
We are not accepting contributions at this time. If you've found a bug or have a feature request, please create an issue and we can discuss it there. See our contributing guide for details.
The tldraw SDK is provided under the tldraw license. You can use the SDK freely in development. Production use requires a license key. Visit tldraw.dev to learn more.
Copyright (c) 2024-present tldraw Inc. The tldraw name and logo are trademarks of tldraw.
Please see our trademark guidelines for info on acceptable usage.
.agents/
skills
.claude/
launch.json
settings.json
skills
.cursor/
.cursor-plugin/
marketplace.json
skills
.dockerignore
.github/
actions/
discord-fail-notify/
action.yml
setup/
setup-playwright/
action.yml
action.yml
ISSUE_TEMPLATE/
bug_report.yml
config.yml
example_request.yml
feature_request.yml
task.yml
pull_request_template.md
workflows/
add-framer-rewrites.yml
bump-versions.yml
checks.yml
claude.yml
close-stale-issues.yml
dependabot-dedupe.yml
deploy-analytics.yml
deploy-bemo.yml
deploy-dotcom.yml
deploy-mcp-app.yml
e2e-device.yml
get-changelog.yml
i18n-download-strings.yml
i18n-upload-strings.yml
issue-triage.yml
playwright-dotcom.yml
playwright-examples.yml
playwright-perf.yml
playwright-update-snapshots.yml
post-release-crew.yml
post-release-marketing.yml
prune-preview-deploys.yml
publish-editor-extensions.yml
publish-templates.yml
publish-vscode-extension.yml
publish.yml
staging-cleanup-daily.yml
staging-e2e.yml
trigger-dotcom-hotfix.yml
trigger-production-build.yml
trigger-sdk-hotfix.yml
update-release-notes.yml
.gitignore
.husky/
post-checkout
post-merge
pre-commit
pre-push
.ignore
.oxfmtrc.json
.oxlintrc.json
.prettierignore
.prettierrc
.vscode/
extensions.json
.yarn/
patches/
@microsoft-tsdoc-npm-0.15.1-e24295d9bd.patch
domino-npm-2.1.6-b0dc3de857.patch
vectra-npm-0.4.4-6aac3f6c29.patch
.yarnrc.yml
AGENTS.md
apps/
analytics/
analytics-worker/
.gitignore
package.json
src/
worker.ts
tsconfig.json
vitest.config.ts
wrangler.toml
.gitignore
index.html
package.json
src/
analytics-services/
analytics-service.ts
ga4.ts
gtm.ts
hubspot.ts
posthog.ts
reo.ts
components/
CookieConsentBanner.ts
PrivacySettingsDialog.ts
constants.ts
index.ts
state/
cookie-consent-state.ts
state.test.ts
state.ts
theme-state.ts
styles.css
types.ts
utils/
consent-check.ts
vite-env.d.ts
tsconfig.json
vercel.json
vite.config.ts
vitest.config.ts
bemo-worker/
.gitignore
package.json
README.md
src/
BemoDO.ts
makePermissiveSchema.ts
types.ts
worker.test.ts
worker.ts
tsconfig.json
vitest.config.ts
wrangler.toml
docs/
.gitignore
.prettierignore
app/
(docs)/
[...slug]/
page.tsx
layout.tsx
analytics.tsx
demo.css
github-dark.css
github-light.css
globals.css
layout.tsx
not-found.tsx
robots.txt
search/
layout.tsx
page.tsx
shantell-sans.woff2
sitemap.ts
components/
common/
autorefresh.tsx
back-to-top-button.tsx
blue-a.tsx
button.tsx
extra-sidebar-buttons.tsx
icon/
discord.tsx
github.tsx
index.tsx
linkedin.tsx
tldraw.tsx
twitter.tsx
loader.tsx
logo.tsx
navigation.tsx
newsletter-signup.tsx
page-title.tsx
share-button.tsx
theme-switch.tsx
tldraw-link.tsx
content/
api-heading.tsx
bento.tsx
blockquote.tsx
callout.tsx
check-item.tsx
code-files.tsx
code.tsx
copy-button.tsx
embed.tsx
example.tsx
feature.tsx
image.tsx
index.tsx
masked-article-image.tsx
parameters-table-description.tsx
parameters-table-name.tsx
parameters-table-row.tsx
parameters-table.tsx
pre.tsx
side-by-side-images.tsx
title-with-source-link.tsx
video.tsx
youtube.tsx
docs/
copy-markdown-button.tsx
docs-article-info.tsx
docs-category-menu.tsx
docs-feedback-widget.tsx
docs-footer.tsx
docs-header.tsx
docs-mobile-sidebar.tsx
docs-search-bar.tsx
docs-sidebar-menu.tsx
docs-sidebar-menus.tsx
docs-sidebar-utils.ts
docs-sidebar.tsx
docs-starter-sidebar.tsx
docs-table-of-contents.tsx
navigation/
close-on-navigation.tsx
footer.tsx
header.tsx
headings-menu.tsx
link.tsx
mobile-menu.tsx
social-link.tsx
search/
ContentHighlight.tsx
FullPageSearch.tsx
index.tsx
SearchButton.tsx
SearchDialog.tsx
content/
content.d.ts
community/
contributing.mdx
license.mdx
translations.mdx
docs/
ai.mdx
assets.mdx
collaboration.mdx
commenting.mdx
driver.mdx
editor.mdx
handles.mdx
indicators.mdx
llm-docs.mdx
mermaid.mdx
persistence.mdx
shapes.mdx
sync.mdx
tools.mdx
user-interface.mdx
getting-started/
installation.mdx
quick-start.mdx
releases.mdx
releases/
migration-skill.mdx
next.mdx
v2.0.0.mdx
v2.1.0.mdx
v2.2.0.mdx
v2.3.0.mdx
v2.4.0.mdx
v3.0.0.mdx
v3.1.0.mdx
v3.10.0.mdx
v3.11.0.mdx
v3.12.0.mdx
v3.13.0.mdx
v3.14.0.mdx
v3.15.0.mdx
v3.2.0.mdx
v3.3.0.mdx
v3.4.0.mdx
v3.5.0.mdx
v3.6.0.mdx
v3.7.0.mdx
v3.8.0.mdx
v3.9.0.mdx
v4.0.0.mdx
v4.1.0.mdx
v4.2.0.mdx
v4.3.0.mdx
v4.4.0.mdx
v4.5.0.mdx
v5.0.0.mdx
v5.1.0.mdx
v5.2.0.mdx
v5.3.0.mdx
sdk-features/
accessibility.mdx
actions.mdx
animation.mdx
arrow-shape.mdx
assets.mdx
attribution.mdx
bindings.mdx
camera.mdx
click-detection.mdx
clipboard.mdx
collaboration.mdx
commenting.mdx
coordinates.mdx
cross-tab-sync.mdx
culling.mdx
cursor-chat.mdx
cursors.mdx
deep-links.mdx
default-shapes.mdx
drag-and-drop.mdx
draw-shape.mdx
edge-scrolling.mdx
editor.mdx
embed-shape.mdx
environment.mdx
eraser.mdx
errors.mdx
events.mdx
external-content.mdx
focus.mdx
frame-shape.mdx
geo-shape.mdx
geometry.mdx
grid.mdx
groups.mdx
handles.mdx
highlighting.mdx
history.mdx
image-export.mdx
indicators.mdx
input-handling.mdx
instance-state.mdx
internationalization.mdx
license-key.mdx
locked-shapes.mdx
note-shape.mdx
options.mdx
overlay-utils.mdx
pages.mdx
parenting.mdx
pen-mode.mdx
performance.mdx
persistence.mdx
readonly.mdx
rich-text.mdx
scribble.mdx
selection.mdx
shape-clipping.mdx
shape-indexing.mdx
shape-transforms.mdx
shapes.mdx
side-effects.mdx
signals.mdx
snapping.mdx
store.mdx
styles.mdx
text-measurement.mdx
text-shape.mdx
themes.mdx
ticks.mdx
tools.mdx
ui-components.mdx
ui-primitives.mdx
user-following.mdx
user-preferences.mdx
validation.mdx
visibility.mdx
sections.json
starter-kits/
agent.mdx
branching-chat.mdx
chat.mdx
image-pipeline.mdx
multiplayer.mdx
overview.mdx
shader.mdx
workflow.mdx
LICENSE.md
next-env.d.ts
next.config.js
package.json
postcss.config.js
public/
apple-touch-icon-152x152.svg
apple-touch-icon-167x167.svg
apple-touch-icon-180x180.svg
apple-touch-icon.png
favicon-16x16.svg
favicon-32x32.svg
favicon.ico
favicon.svg
images/
404.svg
api/
events.png
tools.png
multiplayer_mask.png
multiplayer.gif
starter-kit-images/
agent-starter.avif
branching-chat-starter.avif
... 1600 moreShowing a partial view of a very large repo.
FAQ
tldraw is a Claude Code plugin with 27 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes add-app-to-server, convert-web-app, create-mcp-app. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.