Client was HTML5, CSS3, Javascript, Canvas, Websockets.
Server was Node.js with MongoDB, Websockets and a REST api.
I built the entire backend. The node server ran an express web server as well as a websockets server. Once players logged in and the page was loaded, the client connected to the websocket server with an auth token it received from the REST connection. The websocket server handled all of the real-time communication such as player movement, player chat, live drawing tool, map updates, character addition/removal, etc. These states were communication to the client which would then update the HTML 5 canvas.