# Excalidraw / tldraw

A whiteboard you host. Excalidraw is MIT; tldraw is the source-available canvas SDK. Miro without the member meter.

**Replaces:** Miro

**Tier:** Easy

## Problem

Miro Starter is $8 per member per month billed yearly, then Business climbs. A sketch board does not need that SKU. Excalidraw is the MIT whiteboard; tldraw is the canvas SDK if you are building a product on top.

## Stack

- [Excalidraw](https://excalidraw.com) — MIT virtual whiteboard for hand-drawn diagrams
- [tldraw](https://tldraw.dev) — Source-available infinite-canvas SDK (not a drop-in Miro clone)

## Estimated SaaS cost saved

| You stop paying | Typical / year | Self-host instead |
|---|---:|---|
| Miro Starter (small team) | $1,920 | Excalidraw + a volume |

**About $1,920 / year** on a small team, before you count lock-in.

## Deploy on Railway

Placeholder: Excalidraw plus a storage backend (or the official room server) with a volume. tldraw is an SDK — only deploy it if you are embedding a canvas, not as a Miro clone on day one.

[Start on Railway](https://c17.io/go/railway/excalidraw-whiteboard?from=%2Fstacks%2Fexcalidraw-whiteboard.md)

## AGENT_PROMPT

```
Replace Miro with a self-hosted whiteboard.

Preferred: Excalidraw (MIT). Persist rooms/files on a volume or object storage. Bind HTTP to 0.0.0.0:$PORT.
tldraw is an SDK with a source-available license — use it only if you are embedding a canvas in your own app, not as the team whiteboard.
- Disable public rooms if this is an internal board. Write AGENT_PROMPT.md.
```

## FAQ

### Excalidraw or tldraw?

Excalidraw if you want a whiteboard today. tldraw if you are building a product that needs a canvas component. They are not the same job.

Source: https://c17.io/stacks/excalidraw-whiteboard
