https://medium.com/@hulitw/introduction-mvc-spa-and-ssr-545c941669e9