Building a single page web app from the ground up