Excalidraw
Open-source virtual whiteboard for sketching hand-drawn style diagrams, wireframes, and architecture charts — collaborative and end-to-end encrypted.
Open-source collaborative diagramming, honestly reviewed. Including the part where self-hosting it is almost pointless — and the part where it’s still worth doing anyway.
TL;DR
- What it is: Open-source (MIT) virtual whiteboard with a hand-drawn aesthetic — infinite canvas, real-time collaboration, end-to-end encrypted [README][5].
- Who it’s for: Developers, designers, and non-technical founders who need a fast, frictionless tool for wireframes, architecture diagrams, and brainstorming. The kind of people who reach for a napkin at meetings [5].
- Cost savings vs Miro: Miro’s Business tier runs $20/user/month. Excalidraw self-hosted costs what your VPS costs — typically $5–10/month for the whole team. The free tier at excalidraw.com covers most solo users indefinitely.
- Key strength: Zero-friction start. No login required, no onboarding, just open the URL and draw. The hand-drawn aesthetic removes perfectionism pressure in early-stage diagramming [5].
- Key weakness: Self-hosting live collaboration is genuinely painful — it requires a separate websocket server, custom Docker builds, and environment variable baking at compile time [4]. The basic hosted version at excalidraw.com is already free, login-free, and E2E encrypted, which makes self-hosting harder to justify than with almost any other tool in this category [1].
What is Excalidraw
Excalidraw is a browser-based infinite whiteboard. You draw shapes, arrows, and free-form lines that look like they were sketched on paper rather than generated by a CAD tool. That aesthetic is intentional — it removes the obsessive pixel-perfectionism that slows down early design thinking [5].
The tool runs as a React app in the browser. There’s no backend in the traditional sense: diagrams are stored locally in your browser, shared via E2E encrypted links (the decryption key never touches the server), and optionally synced through a collaboration layer that uses WebSockets [README][5]. Google Cloud uses it for architecture cheatsheets. Meta uses it. CodeSandbox ships it as an embedded component [README]. There’s an npm package (@excalidraw/excalidraw) that lets you drop the editor into your own product.
As of this review the GitHub repository sits at 118,980 stars, making it one of the most-starred open-source projects in the whiteboarding category by a significant margin [merged profile]. The project is primarily maintainer-driven: 78% of merged PRs come from core team members, and the median merge time is 8 hours 44 minutes — a sign of active, focused maintainers rather than a slowly-dying community [3].
The hosted version at excalidraw.com is already free. The company monetizes through Excalidraw+, a paid tier with persistent diagram storage, team workspaces, and Google Drive sync [README]. Pricing for Excalidraw+ isn’t published in our data, so we won’t guess at it.
Why people choose it
The dev.to review from 2020 [5] remains one of the most honest takes: the author spent years searching for a digital tool that matched pen-and-paper for speed and freedom, tried Lucidchart, Creately, and others, and landed on Excalidraw specifically because of how little friction stands between thought and drawing. No loading spinner, no “select a template,” no mandatory account. That experience hasn’t changed.
The hand-drawn aesthetic is not cosmetic fluff. Multiple users in self-hosted communities cite it as a genuine productivity feature: rough sketches don’t trigger the urge to make them pixel-perfect, which means architecture discussions stay in the exploration phase longer instead of locking into polished diagrams that feel harder to challenge [5].
For self-hosters, the motivation profile is unusual. The lumeny.io author [1] puts it plainly: Excalidraw is “one of the least necessary self-hosted tools” because excalidraw.com already offers no login requirement, no data stored on their servers, and end-to-end encryption. You’re neither financially nor privacy-motivated to move off the hosted version. The typical self-hosted tools article would skip this admission entirely. We’re not.
The actual reasons people self-host it: custom domain, offline intranet access, the ability to patch upstream bugs that haven’t been fixed (see the stroke width issue in Deployment), and integrating it into internal tooling where pointing engineers at an external URL isn’t acceptable [1][2][4].
The Medium self-hosting writeup from 2022 [2] frames the real technical challenge: Excalidraw’s collaboration backend was originally built on Firebase, and the process of replacing Firebase with self-hosted storage (Redis/MySQL/MongoDB) requires either forking and maintaining your own storage backend or relying on community forks that may lag behind upstream. The author ended up building alswl/excalidraw-storage-backend from scratch after finding that existing forks had diverged too far from the upstream codebase [2].
Features
The core editor (free, works at excalidraw.com and self-hosted):
- Infinite canvas — no page boundaries [README]
- Hand-drawn style shapes: rectangle, circle, diamond, arrow, line, free-draw, eraser [README]
- Arrow binding and labeled arrows [README]
- Image support — paste or drag in images directly [README]
- Shape libraries (community-contributed packs) [README]
- Export to PNG, SVG, clipboard, or
.excalidrawJSON format [README] - Dark mode [README]
- Undo/redo, zoom, pan [README]
- Localization in dozens of languages [README]
- Customizable (the npm package exposes the full editor for embedding) [README]
Collaboration features (available on excalidraw.com, requires extra work to self-host):
- Real-time multi-user collaboration with cursor visibility [README][5]
- End-to-end encryption — the server holds a blob, the decryption key lives in the URL fragment [README][5]
- Shareable read-only links [README]
- Local-first autosave to browser storage (no account required) [README]
- PWA support — works offline after first load [README]
Ecosystem:
- VS Code extension for editing
.excalidrawfiles directly in your editor [README] - npm package (
@excalidraw/excalidraw) for embedding in your own React app [README] - Used by Google Cloud, Meta, CodeSandbox as an embedded component [README]
What’s notably absent: no built-in template library comparable to FigJam or Miro, no video/audio in sessions, no commenting threads, no presentation mode. Excalidraw is deliberately minimal. That’s both the strength and the limitation.
Pricing: SaaS vs self-hosted math
Miro (primary SaaS competitor):
- Free: 3 editable boards, unlimited team members, no collaboration timer [merged profile]
- Starter: $0/user/month (the pricing page shows this, details unclear) [merged profile]
- Business: $20/user/month — the tier where features like unlimited boards, Jira/Confluence integration, and advanced templates live [merged profile]
A 5-person team on Miro Business: $100/month or $1,200/year.
Excalidraw.com (free tier):
- $0. No login required. Unlimited diagrams saved to browser storage. Real-time collaboration via shared links. E2E encrypted.
- This is the comparison that makes the pricing section almost anticlimactic.
Self-hosted Excalidraw:
- Software: $0 (MIT license) [README]
- VPS to run it: $5–10/month
- Extra: the collaboration backend (excalidraw-room WebSocket server) requires a separate deployment — more on this in the next section
The honest math: For solo use or small teams, excalidraw.com at $0 beats Miro at $100/month by a factor of infinity. The only reason to pay for Miro over Excalidraw is if you specifically need Miro’s template ecosystem, sticky-note-heavy workshops, or enterprise integrations. For early-stage wireframing and architecture diagrams, excalidraw.com competes directly with Miro’s paid tier and wins on price.
Self-hosting adds infrastructure cost without adding capability above excalidraw.com’s free tier — unless you need offline access, a custom domain, or a patched build.
Deployment reality check
The simple version (no live collaboration): The Dokploy template for Excalidraw is 5 lines of configuration — a single Docker image definition [4]. You can have it running on a VPS in under 10 minutes. It works fine for personal use: infinite canvas, local autosave, export. No collaboration.
The hard part (live collaboration): This is where things get frustrating. To enable real-time multi-user collaboration on a self-hosted instance, you need a separate excalidraw-room WebSocket server [4]. The standard Docker image doesn’t include it.
Worse: Excalidraw is built with Vite and compiled as a static bundle. The collaboration server URL gets baked into the build at compile time via environment variables [4]. This means you can’t just point an existing prebuilt Docker image at your own room server — you have to build a custom Docker image with your domain and room server URL hardcoded into it. Every time you change domains, you rebuild [4].
The Medium self-hosting deep-dive [2] documents another layer of this: the data persistence backend for saving diagrams was historically Firebase. The community has produced several forks with alternative storage backends (Redis, MySQL, MongoDB), but these forks diverge from upstream and require ongoing maintenance work to stay current [2].
A GitHub repository (Vin-Ren/excalidraw-collab-docker) exists to simplify the custom-image build process for collaboration [4], but this is still meaningfully more work than a typical Docker Compose self-hosted deployment.
What you actually need for a fully-featured self-hosted instance:
- A Linux VPS (2GB RAM minimum — Excalidraw itself is lightweight, but your other containers need room)
- Docker and docker-compose
- Ability to build a custom Docker image (for collaboration) or comfort with an image that doesn’t include live collab
- A domain + reverse proxy (Caddy or nginx) for HTTPS
- Optional: excalidraw-room WebSocket server for collaboration
- Optional: a storage backend if you want server-side persistence beyond the default browser autosave
Known upstream bug: Free-draw (the freehand pencil tool) has a stroke width inconsistency issue that has been open for over three years [1]. At default settings, freehand lines render noticeably thicker and less controlled than other tools. The fix requires patching two lines in rendererElements.ts and rebuilding the container [1]. It’s not a showstopper, but it matters if freehand sketching is a primary use case.
Time estimate: 10 minutes for the no-collaboration Docker deployment. 2–4 hours for a fully functional collaborative instance with custom domain, including the custom image build and room server setup [4].
Pros and Cons
Pros
- Actually MIT-licensed. No commercial use restrictions, no “fair-code” gotchas. Embed it in your product, resell it, fork it [README].
- 118K GitHub stars. The most-validated whiteboarding tool in open source by a wide margin, backed by active maintainers with fast merge cycles [3][merged profile].
- Zero-friction hosted version. excalidraw.com is free, requires no account, stores nothing on the server, and is E2E encrypted. This is the honest comparison to Miro — you may not need to self-host at all [1][5].
- Hand-drawn aesthetic reduces perfectionism. Multiple users call this out as a genuine workflow improvement, not just a cosmetic choice [5].
- npm package for embedding. If you’re building a product that needs a whiteboard component, Excalidraw is the canonical open-source choice — used in production by Google Cloud, Meta, CodeSandbox [README].
- Actively maintained. 78% core team PRs, 4.5-minute wait times, 8h44m median merge time [3].
- No tracking, no ads, E2E encrypted. Even on the hosted version, the server can’t read your diagrams [README][5].
- Open format.
.excalidrawfiles are plain JSON — no vendor lock-in, no proprietary format [README].
Cons
- Live collaboration self-hosting is genuinely painful. Requires a separate WebSocket server and a custom Docker build with your domain baked in. Not a one-command deployment [4].
- Self-hosting adds friction without adding features over excalidraw.com’s free tier for most users. The privacy argument doesn’t hold — the hosted version is already E2E encrypted [1].
- Free-draw stroke inconsistency is a multi-year unfixed bug. Freehand lines are too thick by default. Fix exists but requires patching and rebuilding [1].
- No persistent server-side storage by default. Diagrams autosave to your browser. If you clear browser storage, you lose unsaved work. Sharing requires either the E2E-encrypted link method or a separately-configured storage backend [2].
- Not a Miro replacement for structured workshops. No sticky note clusters, no voting, no presenter mode, no deep Jira/Confluence integration. The tool is deliberately minimal — that’s strength and limitation simultaneously.
- Collaboration backend is not officially packaged. The excalidraw-room server exists, community guides exist, but there’s no official “here’s how to self-host with full collaboration” documentation in the main README [4].
Who should use this / who shouldn’t
Use Excalidraw if:
- You need a fast, no-login whiteboard for architecture discussions, wireframes, or brainstorming — just open excalidraw.com and start.
- You’re building a product and need to embed a whiteboard component — the npm package is the standard choice.
- You want a Miro alternative for small teams where the $20/user/month Business tier is hard to justify for occasional diagramming.
- You care about the open format — your diagrams are portable JSON, not locked in someone’s cloud.
Self-host it if:
- You need offline access on an internal network.
- You need a custom domain for organizational or compliance reasons.
- You want to patch the free-draw stroke issue or other upstream bugs without waiting for a fix [1].
- You’re embedding it in an internal tool and can’t point employees at excalidraw.com.
Don’t self-host it if:
- Your goal is privacy — excalidraw.com’s E2E encryption already achieves that [1][5].
- You need live collaboration and don’t want to deal with custom Docker builds — just use excalidraw.com [4].
- You’re looking for Miro-level structured workshop features (dot voting, frameworks, presentation mode).
Skip it entirely if:
- Your team needs real-time workshops with structured facilitation frameworks — FigJam or Miro serve that use case better.
- You need architecture diagramming with strict notation standards (UML, C4 model enforcement) — tools like diagrams.net (draw.io) have richer shape libraries for that.
Alternatives worth considering
- Miro — the incumbent for team workshops. Vastly more templates, sticky-note workflows, and enterprise integrations. $20/user/month on the paid tier. Closed source. Worth it if you run structured facilitation sessions.
- FigJam — Figma’s whiteboard. Better for design teams already on Figma. $5/editor/month on Figma’s Professional plan. Closed source.
- diagrams.net (draw.io) — the most powerful open-source diagramming tool for structured diagrams (network topology, UML, ERDs). More complex than Excalidraw, fully self-hostable, also MIT-licensed. Pick this over Excalidraw if you need formal notation.
- tldraw — the closest competitor in feel and philosophy to Excalidraw. Also open source, also MIT-licensed, slightly different aesthetic, similar feature set. Worth evaluating if Excalidraw’s hand-drawn style isn’t what you want.
- Mermaid / PlantUML — code-as-diagram tools. Not a whiteboard replacement, but for technical documentation where you want diagrams that live in version control alongside code, these are the right tool.
- Obsidian Canvas / Logseq Whiteboard — if you’re already in a note-taking ecosystem, these embedded whiteboards may be sufficient without a separate tool.
Bottom line
Excalidraw is one of the few open-source tools where the hosted free tier is genuinely better than self-hosting for most people. excalidraw.com is free, requires no account, E2E encrypts your diagrams, and supports real-time collaboration without any setup. Self-hosting adds cost and operational overhead without adding privacy or features for the typical user. The honest recommendation for a non-technical founder: just use excalidraw.com. Close this tab. You’re done.
If you have a specific reason to self-host — offline access, custom domain, embedded in an internal product — Excalidraw is a fine choice. The base deployment is trivial. The collaboration setup is annoying but documented by the community. The MIT license is real. The 118K stars aren’t just hype — the project is actively maintained and the output of an afternoon with Excalidraw is the kind of rough diagram that communicates better than a polished slide deck.
For teams paying $20/user/month for Miro who mostly use it for quick whiteboards rather than structured facilitation workshops, the savings are real. Five people at $100/month is $1,200/year for something excalidraw.com does for free.
Sources
- Why would anyone self-host Excalidraw? — lumeny.io. https://www.lumeny.io/notes/Excalidraw-Stroke-Fix
- Self hosted online collaborative drawing platform Excalidraw — alswl, Medium (Oct 17, 2022). https://medium.com/@alswl/self-hosted-online-collaborative-drawing-platform-excalidraw-a9bcda614186
- Project of the Week: Excalidraw — DEV Community / PullFlow. https://dev.to/pullflow/project-of-the-week-excalidraw-4mff
- Deploying Excalidraw with Live Collab on Dokploy — Vincent Oei, Medium (Jun 1, 2025). https://medium.com/@vincentoei4009/deploying-excalidraw-with-live-collab-on-dokploy-fb7aa5be64c3
- Why Excalidraw is mightier than the pen (and the sword) — DEV Community. https://dev.to/ndsn/why-excalidraw-is-mightier-than-the-pen-and-the-sword-329f
Primary sources:
- GitHub repository and README: https://github.com/excalidraw/excalidraw (118,980 stars, MIT license)
- Official editor: https://excalidraw.com
- Excalidraw+ (paid tier): https://plus.excalidraw.com
- Documentation: https://docs.excalidraw.com
Features
Integrations & APIs
- Plugin / Extension System
Customization & Branding
- Dark Mode
Localization & Accessibility
- Multi-Language / i18n
Related Office & Productivity Tools
View all 75 →reveal.js
71KThe open-source HTML presentation framework — create beautiful, interactive slide decks using HTML, Markdown, or a visual editor, with 70K+ GitHub stars.
tldraw
46KInfinite canvas whiteboard with real-time collaboration. Embed in your app as a React component or use as a standalone drawing tool. No signup required.
Penpot
45KPenpot is the open-source design and prototyping platform that bridges designers and developers with web-native standards, real-time collaboration, and no vendor lock-in.
Onlook
25KOpen-source desktop app for visually editing React applications with changes written back to code in real-time.
Graphite
25KOpen-source 2D vector and raster editor with a nondestructive, node-based workflow that runs in the browser.
Modulz
19KThe visual code editor for producing production-ready design systems without writing code