Excalidraw is a monorepo with a clear separation between the core library and the application:
packages/excalidraw/
- Main React component library published to npm as @excalidraw/excalidraw
excalidraw-app/
- Full-featured web application (excalidraw.com) that uses the librarypackages/
- Core packages: @excalidraw/common
, @excalidraw/element
, @excalidraw/math
, @excalidraw/utils
examples/
- Integration examples (NextJS, browser script)packages/*
for editor featuresexcalidraw-app/
for app-specific featuresyarn test:update
before committingyarn test:typecheck
to verify TypeScriptyarn test:typecheck # TypeScript type checking
yarn test:update # Run all tests (with snapshot updates)
yarn fix # Auto-fix formatting and linting issues
vitest.config.mts
)