Giting.
낮의 Giting

홈 · infinite-canvas · typescript · react · whiteboard-sdk

tldraw 대표 이미지 50,147 / 3,500
MAGAZINE VOL.2이 리포는 매거진 특집으로도 깊게 다뤘습니다: 모델이 나와도, 코드는 흔들리지 않았다 →
분석 리포트실측 정보사이트적용점원문 README

구조와 기능

tldraw는 무한 캔버스 기반 드로잉/화이트보드 엔진을 제공하는 TypeScript 모노레포다. 실측 기준 전체 텍스트 라인 수는 818,555줄, 파일 수는 4,510개이며, 이 중 .ts(1,750개 파일·363,208줄)와 .tsx(995개 파일·134,082줄)가 전체 라인의 약 61%를 차지해 핵심 로직과 리액트 렌더링 레이어가 리포의 몸통을 이룬다. 최대 단일 파일은 packages/editor/src/lib/editor/Editor.ts로 11,775줄인데, 이 정도 규모면 캔버스 편집기의 상태·인터랙션 처리가 한 곳에 상당히 밀집된 구조로 추정된다(추정).

문서화 비중도 크다. .mdx 141개 파일이 27,153줄에 달해 docs 사이트 콘텐츠가 코드베이스 안에서 상당한 지분을 차지하고, .tldr 확장자 파일 13개가 10,518줄을 차지하는 점도 눈에 띈다. tldraw 자체 파일 포맷을 테스트 픽스처로 리포 안에서 직접 사용(dogfooding)하고 있다는 뜻이다.

의존성 구성은 런타임 기준 7개로 가볍고, devDependencies는 33개로 모노레포 빌드·테스트 툴체인에 몰려 있다. CI 워크플로는 35개, 원격 태그는 315개로 릴리스 케이던스와 검증 파이프라인이 세분화되어 있음을 보여준다. 또한 hasAgentDocs가 true이고 agentPackaging 중 rootDocs·skillMd·agentsDir가 모두 true(claudePlugin·codexPlugin은 false)로, 특정 벤더 플러그인 없이 범용적인 방식으로 코딩 에이전트가 리포를 탐색할 수 있도록 문서 구조를 갖춰둔 것이 확인된다.

하이라이트

커밋 밀도와 저자 집중도. 최근 90일 커밋 611건을 저자 18명이 만들어냈다(1인당 평균 약 34건/90일). 이 정도 밀도의 커밋이 소수 저자에 집중된다는 것은 핵심 유지보수 인력이 작지만 응집력 있게 움직이고 있다는 뜻이다. topAuthors 5인 중에는 리포 소유 계정으로 공개돼 있는 Steve Ruiz가 포함되어 있다.

에이전트 친화적 문서 체계. hasAgentDocs=true, agentsDir/skillMd 존재는 이 리포가 사람 개발자뿐 아니라 코딩 에이전트의 탐색을 염두에 두고 설계됐음을 보여준다. 별도 벤더 전용 플러그인(claudePlugin/codexPlugin) 없이 범용 구조로 이를 구현한 점은, 자체 리포에 에이전트 온보딩 문서를 설계할 때 참고할 만한 패턴이다.

테스트·릴리스 파이프라인 규모. 테스트 파일은 601개(.snap 스냅샷 10개·3,416줄 포함)로 전체 파일의 약 13%이며, CI 워크플로 35개·원격 태그 315개가 함께 돌아간다. 프론트엔드 캔버스 라이브러리 특성상 시각적 회귀를 잡기 위한 스냅샷 테스트 비중이 상당할 것으로 보인다(추정).

주의점

라이선스가 표준 SPDX로 식별되지 않는 이유가 있다. 이 리포는 오픈소스 라이선스가 아니다. 검수 과정에서 LICENSE.md 원문을 직접 확인한 결과, 기본 허용 범위는 개발·스테이징 환경뿐이고 프로덕션 배포에는 tldraw가 발급하는 라이선스 키가 필요하다(트라이얼·커머셜 별도). 조항에는 키 유효성 검증, 배포 환경 감지, 워터마크 표시 강제, 그리고 라이선스 준수 목적의 사용 데이터 수집·전송까지 기술적 강제 수단이 명시돼 있다. 독립 제품으로의 재배포는 금지되고, tldraw에 대한 특허·저작권 소송을 제기하면 라이선스가 자동 종료된다. 스타 수(50,147)와 GitHub 공개 리포라는 형식만 보고 MIT류를 가정하면 정확히 함정에 빠지는 구조다.

이슈 응답성도 낮은 편이다. 샘플 25건 중 응답이 달린 건 6건(24%)뿐이고, 응답이 달린 경우의 중앙값도 19.4시간이다. openIssues는 710건이 열려 있어, 프로덕션에 이 라이브러리를 들일 경우 이슈 트래커를 통한 지원을 기대하기보다 자체 포크·패치 대응 여력을 갖추는 편이 안전하다.

실측치 자체가 하한값이라는 점도 감안해야 한다. shallow clone(depth 1000) 기준이라 commitCount=1000, authorCount=18, firstCommitInRange=2026-03-12는 클론 범위 내 수치일 뿐 프로젝트 전체 이력을 반영하지 않는다. 실제 총 커밋 수와 전체 기여자 수는 이보다 많을 수 있다.

실측 정보

Stars / Forks
50,147 / 3,500
Open Issues
710
최근 90일 커밋 / 저자 수
611 / 18명
전체 라인 수 / 파일 수
818,555줄 / 4,510개
테스트 파일
601개(.snap 10개·3,416줄 포함)
CI 워크플로 / 태그
35개 / 315개
이슈 응답률(샘플 25건)
24%(6건), 중앙값 19.4시간

사이트 실측

주소
tldraw.dev
응답 · 첫 화면
200 · 1.0초 (데스크톱)
요청 · 전송량
206개 · 7.3MB
깨진 요청 · 콘솔 오류
2개 · 0개
폰(390px)
가로 넘침 없음
디자인
밝은 화면 · Archivo

홈페이지를 실제 크롬으로 띄워 첫 화면까지만 쟀습니다(2026-10-16 · 데스크톱 1440px · 폰 390px). 로그인 · 입력 같은 동작은 하지 않았고, 사이트 상태는 리포 품질과 따로 봅니다. 색 칸은 바탕 · 면 · 글자 · 흐린 글자 · 강조 · 선, 점선은 「못 잼」.

적용점

  • P0 · 비용 낮음오픈소스로 오인하지 말 것. 프로덕션 배포는 tldraw 라이선스 키(트라이얼/커머셜) 발급이 전제이고, 소프트웨어가 키·워터마크·사용 데이터 전송을 기술적으로 강제한다. 도입 전 LICENSE.md 원문 법무 검토 필수
  • P1 · 비용 낮음agentsDir/skillMd 기반 에이전트 문서 체계를 자체 리포 온보딩 문서 설계에 참고
  • P1 · 비용 중간이슈 응답률 24%를 감안해 프로덕션 장애 발생 시 자체 패치·포크 대응 플랜을 미리 준비
◈ 참고용

커밋 밀도(90일 611건)와 에이전트 친화 문서 체계, 35개 CI 워크플로 등 엔지니어링 실행력은 뚜렷하다. 다만 라이선스는 오픈소스가 아니다. LICENSE.md 원문(검수 시 직접 확인) 기준 기본 허용은 개발 환경뿐이고, 프로덕션 배포에는 라이선스 키가 필요하며 소프트웨어가 키 검증·워터마크 표시·사용 데이터 전송을 기술적으로 강제한다. 또한 샘플 이슈 응답률도 24%에 그쳐 실사용 중 문제가 생겼을 때 커뮤니티 지원에 기대기 어렵다. 지금 단계에서는 캔버스 엔진 설계와 에이전트 문서화 패턴을 배우는 참고용으로 분류하고, 실제 도입은 라이선스 조항을 법무가 확인한 뒤 candidate로 재평가할 것을 권한다.

원문 README

아래는 tldraw/tldraw 저장소의 README 원문입니다(GitHub 렌더, 수집 시점 기준). 저작권은 원 프로젝트에 있으며 원 저장소의 라이선스를 따릅니다. GitHub에서 보기

README 전문 펼치기
tldraw

npm npm downloads Discord Ask DeepWiki

Build infinite canvas apps in React with the tldraw SDK.

Docs · Examples · Starter kits

Feature highlights

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.

  • Multiplayer — self-hostable real-time collaboration with @tldraw/sync
  • Drawing and diagramming — pressure-sensitive drawing, geometric shapes, rich text, arrows, snapping to shapes, edge scrolling, image and video support, image export
  • Runtime API - drive the canvas at runtime with the Editor API
  • Fully extensible — custom shapes, tools, bindings, UI components, side effects, and event hooks
  • AI integrations — canvas primitives for building with LLMs
  • DOM canvas — web rendering supports anything the browser supports, including embedded websites from YouTube, Figma, GitHub, and more
  • Broad support — works in any browser across desktop, touch screens, tablets, and mobile devices

Who's using tldraw

The 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.

Quick start

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

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
  • Multiplayer — self-hosted real-time collaboration powered by @tldraw/sync and Cloudflare Durable Objects, the same stack behind tldraw.com
  • Agent — AI agents that read, interpret, and modify canvas content
  • Workflow — drag-and-drop node builder for automation pipelines, visual programming, and no-code platforms
  • Chat — canvas-powered AI chat where users sketch, annotate, and mark up images alongside conversations
  • Image pipeline — node-based builder for image generation pipelines
  • Branching chat — AI chat with visual branching, letting users explore and compare different conversation paths
  • Shader — WebGL shaders that respond to canvas interactions

Local development

The 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

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.

Community

Contributing

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.

License

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.

Trademarks

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.

Contributors

Star History

Star History Chart

의견

판정에 대한 반론, 도입 경험, 정정 제보를 환영합니다. GitHub 계정으로 참여합니다.

이것도 재봤습니다

전체 리포트 →