Its very cool that your web app does not clog the whole CPU like similar tools. Can you tell a little bit about the technology stack. Feel freeto skip questions if they are too invasive.
1. Do you use a drawing library or is this in house?
2. Do you store the SVG-objects as JS-objects?
3. If (3), how do represent the SVG-objects? (I looked into hyperscript).
4. If (3), how do you render the JS-object version to SVG in the DOM and update them? Do you use something like React, i.e. 'render' the whole thing to a VDOM and then update changes in dom for each update, or do you bind each SVG object to its JS object via an Observer?
4. A drawing app has obvouisly many states like UserCanSelectObjectByClick, UserClickedFirstPoint, UserMovesRectangle. Do you use state machines, generators, or sagas to implement these flows?
6. Do you use Websockets? Which library would you suggest? (A classical choice would be socket.io, but it is relatively heavyweigh).
7. Do you somehow abstract the mouse-events with jquery or d3? Any plans to support touch?
8. What happens if two users modify the same object?