draw is a tiny in-memory collaborative whiteboard for the web. draw syncs pen strokes in real-time across all users in the room, as well as managing presence in real-time between all active users to show when users join and leave. I wouldn't call it production-ready, but it works well enough for my personal use cases of doodling with friends, and fits in a few megabytes of RAM.
I usually use it to share drawings and doodle together with friends on iPads with the Apple Pencil, and works quite well even on slow connections and devices.
It's built on...
- Torus as a light frontend UI library
- blocks.css to add some spice to the UI design
- Gorilla WebSocket for initiating and managing WebSocket connections, and as a simple web server
Deployment is managed by systemd. Copy the
draw.service file to
/etc/systemd/system/draw.service and update:
draw-userwith your Linux user
/home/draw-user/drawwith your working directory (path to repository or a copy of
Then start draw as a service:
systemctl daemon-reload # reload systemd script systemctl start draw # start draw server as a service