Uses node.js, socket.io and express.js as server. Strokes are stored in mongodb, and cached gzipped for replays. The current state is also preserved on the server, using node-canvas.
An example of the replay feature: http://draw.2x.io/replay#/history/Mulm/1441464748552271684/d...
This is arguably just a fun project, not aimed at anything commercial at all, so don't expect it to look like such.
Worth noting: socket.io currently doesn't support hybi10, the websocket protocol as implemented in Chrome 14 and later. The people behind socket.io are working on that.