Building single page apps using web components