Skip to content

Excalidraw vs Rough.js

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

Excalidraw

Open source · MIT

Open-source virtual whiteboard for sketching hand-drawn style diagrams in your browser.

Rough.js

Open source · MIT

A small JavaScript library that draws shapes in a sketchy, hand-drawn style on Canvas or SVG.

The short answer

Choose Excalidraw if you need…

  • Teams sketching diagrams or wireframes together in a shared canvas
  • People who want a casual, informal look for explanatory drawings
  • Developers who want to embed a whiteboard editor in their own React app
  • Users who care about end-to-end encryption for shared drawings

Choose Rough.js if you need…

  • Web developers who want a casual, hand-drawn look for diagrams or illustrations
  • Developers building whiteboard-style or sketch-style interfaces
  • People creating maps or charts that should look informal
  • Projects that need a lightweight drawing library with no heavy dependencies noted in the README

Side-by-side

ExcalidrawRough.js
TypeAppLibrary
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars135k21.3k
Setup difficultyBeginnerIntermediate
How you get itUse it in the browser (or self-host)Install with a package manager
Main languageTypeScriptHTML
Last code update5 days ago2 years ago

What each one is

Excalidraw

Excalidraw is an open-source whiteboard where you draw diagrams, wireframes and sketches in a deliberately hand-drawn style. The hosted app at excalidraw.com adds real-time collaboration, end-to-end encryption and autosave to the browser. The same editor is also published as an npm package that developers can embed in their own apps.

Rough.js

Rough.js is a small JavaScript graphics library that makes lines, shapes, and paths look hand-drawn instead of perfectly computer-drawn. It works with both HTML Canvas and SVG, so it can be added to a web page to produce diagrams or illustrations with a sketchy look. The README describes it as under 9 kB in size.

Best for

Excalidraw

  • Teams sketching diagrams or wireframes together in a shared canvas
  • People who want a casual, informal look for explanatory drawings
  • Developers who want to embed a whiteboard editor in their own React app
  • Users who care about end-to-end encryption for shared drawings
  • Anyone who wants drawings saved in an open .excalidraw JSON format

Rough.js

  • Web developers who want a casual, hand-drawn look for diagrams or illustrations
  • Developers building whiteboard-style or sketch-style interfaces
  • People creating maps or charts that should look informal
  • Projects that need a lightweight drawing library with no heavy dependencies noted in the README

Strengths

Excalidraw

  • Free and open source under the MIT license
  • Simple, approachable drawing tools with a distinctive hand-drawn look
  • Open .excalidraw JSON format and export to PNG, SVG and clipboard

Rough.js

  • Small library size, described as under 9 kB in the README
  • Works with both Canvas and SVG output
  • Simple API with examples for shapes, fills, and paths

Not ideal for

Excalidraw

  • Users who need precise, pixel-perfect vector design; the hand-drawn style is the default look and the README does not describe precision tools
  • People wanting to self-host the collaboration service; the README only links to the hosted app for real-time collaboration and does not describe a self-hosting setup
  • Non-developers who only want the hosted app and have no need for the code; the npm and development sections are aimed at developers

Rough.js

  • People who need precise, technical, or CAD-style drawings, since the output is intentionally rough
  • Users who want a ready-made drawing app rather than a code library, since the README covers only the library API
  • Non-programmers looking for a point-and-click tool

Trade-offs

Excalidraw

  • Collaboration and encryption are features of the hosted app; the README does not detail how to run them yourself
  • Development setup is covered only by a linked guide, so the README alone gives limited build detail
  • No downloadable binaries in the latest release; use the web app or the npm package

Rough.js

  • The README is brief and points to an external wiki for full API documentation
  • Output is deliberately imprecise, so it is unsuited to exact measurements
  • The README shows no information on browser support or the maintenance pace beyond the last push date

Getting started

Frequently asked questions

What is the difference between Excalidraw and Rough.js?

Excalidraw: Open-source virtual whiteboard for sketching hand-drawn style diagrams in your browser. Rough.js: A small JavaScript library that draws shapes in a sketchy, hand-drawn style on Canvas or SVG. Excalidraw suits teams sketching diagrams or wireframes together in a shared canvas, while Rough.js suits web developers who want a casual, hand-drawn look for diagrams or illustrations.

Are Excalidraw and Rough.js free?

Excalidraw: Free and open source. Rough.js: Free and open source.

Which is easier to set up, Excalidraw or Rough.js?

Excalidraw is easier to get started with (rated beginner); Rough.js is rated intermediate and usually needs more setup.

Is Excalidraw or Rough.js more popular?

Excalidraw has more GitHub stars (135k) than Rough.js (21.3k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to Excalidraw and Rough.js?

Other options people compare them with include Drawnix, Handy, G2, mo · js, Anime.js.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.