.codesandbox | ||
.github | ||
.husky | ||
dev-docs | ||
examples | ||
excalidraw-app | ||
firebase-project | ||
packages | ||
public | ||
scripts | ||
.dockerignore | ||
.editorconfig | ||
.env.development | ||
.env.production | ||
.eslintignore | ||
.eslintrc.json | ||
.gitattributes | ||
.gitignore | ||
.lintstagedrc.js | ||
.npmrc | ||
.nvmrc | ||
.prettierignore | ||
.watchmanconfig | ||
CONTRIBUTING.md | ||
crowdin.yml | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE | ||
package.json | ||
README.md | ||
setupTests.ts | ||
tsconfig.json | ||
vercel.json | ||
vitest.config.mts | ||
yarn.lock |

Excalidraw Editor | Blog | Documentation | Excalidraw+
An open source virtual hand-drawn style whiteboard.
Collaborative and end-to-end encrypted.
##Features The Excalidraw editor (npm package) offers an array of powerful features:
💯 Free & Open-Source: Enjoy the freedom of an open-source tool. 🎨 Infinite Canvas: Let your ideas flow freely on an infinite canvas. ✍️ Hand-Drawn Style: Embrace a hand-drawn-like style for your creations. 🌓 Dark Mode: Switch seamlessly between light and dark modes. 🏗️ Customizable: Tailor the editor to fit your needs. 📷 Image Support: Easily incorporate images into your drawings. 😀 Shape Libraries: Access a wide range of shapes to enhance your designs. 👅 Localization (i18n) Support: Use the editor in your preferred language. 🖼️ Export Options: Export your creations to PNG, SVG, or clipboard with ease. 💾 Open Format: Save and share your drawings as .excalidraw json files. ⚒️ Wide Range of Tools: Choose from various tools including rectangle, circle, diamond, arrow, line, free-draw, and eraser. ➡️ Arrow Binding & Labeled Arrows: Create arrows with labels for clear communication. 🔙 Undo / Redo: Easily correct mistakes or backtrack as needed. 🔍 Zoom and Panning: Get a closer look and navigate your canvas effortlessly.
Excalidraw.com
The app hosted at excalidraw.com is a minimal showcase of what you can build with Excalidraw. Its source code is part of this repository as well, and the app features:
- 📡 PWA support (works offline).
- 🤼 Real-time collaboration.
- 🔒 End-to-end encryption.
- 💾 Local-first support (autosaves to the browser).
- 🔗 Shareable links (export to a readonly link you can share with others).
We'll be adding these features as drop-in plugins for the npm package in the future.
Quick start
Note: following instructions are for installing the Excalidraw npm package when integrating Excalidraw into your own app. To run the repository locally for development, please refer to our Development Guide.
Use npm
or yarn
to install the package.
npm install react react-dom @excalidraw/excalidraw
# or
yarn add react react-dom @excalidraw/excalidraw
Check out our documentation for more details!
Contributing
- Missing something or found a bug? Report here.
- Want to contribute? Check out our contribution guide or let us know on Discord.
- Want to help with translations? See the translation guide.
Integrations
Who's integrating Excalidraw
Google Cloud • Meta • CodeSandbox • Obsidian Excalidraw • Replit • Slite • Notion • HackerRank • and many others
Sponsors & support
If you like the project, you can become a sponsor at Open Collective or use Excalidraw+.
Thank you for supporting Excalidraw
Last but not least, we're thankful to these companies for offering their services for free: