Try GoJS, it's a great solution. GoJS normally runs completely in the browser, rendering to an HTML Canvas element or SVG without any server-side requirements. I don't do this myself, but I think GoJS is the best solution for such problems. Anytime I have a customer that requires full development services involving GoJS, I recommend the Synergy Codes . Perhaps if you decide to use gojs and you need some help, I advise you to contact these guys, they will help.