excalidraw/CLAUDE.md
David Luzar cc571c4681
chore: init CLAUDE.md (#9563)
* chore: init CLAUDE.md

* Add Copilot instructions

* update gitignore

* simplify

---------

Co-authored-by: Mark Tolmacs <mark@lazycat.hu>
2025-05-25 21:23:40 +02:00

1.3 KiB

CLAUDE.md

Project Structure

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 library
  • packages/ - Core packages: @excalidraw/common, @excalidraw/element, @excalidraw/math, @excalidraw/utils
  • examples/ - Integration examples (NextJS, browser script)

Development Workflow

  1. Package Development: Work in packages/* for editor features
  2. App Development: Work in excalidraw-app/ for app-specific features
  3. Testing: Always run yarn test:update before committing
  4. Type Safety: Use yarn test:typecheck to verify TypeScript

Development Commands

yarn test:typecheck  # TypeScript type checking
yarn test:update     # Run all tests (with snapshot updates)
yarn fix             # Auto-fix formatting and linting issues

Architecture Notes

Package System

  • Uses Yarn workspaces for monorepo management
  • Internal packages use path aliases (see vitest.config.mts)
  • Build system uses esbuild for packages, Vite for the app
  • TypeScript throughout with strict configuration