Excalidraw logo: Sketch handrawn like diagrams.

Virtual whiteboard for sketching hand-drawn like diagrams.

Follow Excalidraw on Twitter

## Try it now Go to [excalidraw.com](https://excalidraw.com) to start sketching. Read our [blog](https://blog.excalidraw.com) and follow the [guides](https://howto.excalidraw.com) to learn more about Excalidraw and how to use it effectively. ## Shape libraries Find a growing list of libraries containing assets for your drawings at [libraries.excalidraw.com](https://libraries.excalidraw.com). ## Run the code ### Code Sandbox - Go to https://codesandbox.io/s/github/excalidraw/excalidraw - You may need to sign in with Github and reload the page - You can start coding instantly, and even send PRs from there! ### Local Installation These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. #### Clone the repo ```bash git clone https://github.com/excalidraw/excalidraw.git ``` #### Commands | Command | Description | | --------------------- | --------------------------------- | | `npm install` | Install the dependencies | | `npm start` | Run the project | | `npm run fix` | Reformat all files with Prettier | | `npm test` | Run tests | | `npm run test:update` | Update test snapshots | | `npm run test:code` | Test for formatting with Prettier | #### Docker Compose You can use docker-compose to work on excalidraw locally if you don't want to setup a Node.js env. ```sh docker-compose up --build -d ``` ## Self hosting We publish a Docker image with the Excalidraw client at [excalidraw/excalidraw](https://hub.docker.com/r/excalidraw/excalidraw). You can use it to self host your own client under your own domain, on Kubernetes, AWS ECS, etc. ```sh docker build -t excalidraw/excalidraw . docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest ``` The Docker image is free of analytics and other tracking libraries. **At the moment, self-hosting your own instance doesn't support sharing or collaboration features.** We are working towards providing a full-fledged solution for self hosting your own Excalidraw. ## Contributing Pull requests are welcome. For major changes, please [open an issue](https://github.com/excalidraw/excalidraw/issues/new) first to discuss what you would like to change. ## Translating To translate Excalidraw into other languages, please visit [our Crowdin page](https://crowdin.com/project/excalidraw). To add a new language, [open an issue](https://github.com/excalidraw/excalidraw/issues/new) so we can get things set up on our end first. Translations will be available on the app if they exceed a certain threshold of completion (currently 85%). ## Excalidraw is built using these awesome tools - [React](https://reactjs.org) - [Rough.js](https://roughjs.com) - [TypeScript](https://www.typescriptlang.org) - [Vercel](https://vercel.com) And the main source of inspiration for starting the project is the awesome [Zwibbler](https://zwibbler.com/demo/) app. ## Testimonials ## Contributors ### Code Contributors This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. ### Financial Contributors Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/excalidraw/contribute)] #### Individuals #### Organizations Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/excalidraw/contribute)]