first pass on act 2 - express with socket.io/chat ui