Single Page Web Applications: JavaScript End-to-End (The Hard Stuff)