As well as applying some design principals of my own (e.g. everything on the site is text apart from actual images), I have tried to go with the grain of the Angular 2 framework.
Almost all of the site content is text stored using the Markdown syntax.
When the site is initially loaded, the code and current page content is fetched and rendered immediately. The content of the rest of the pages is downloaded in the background. So clicking on an internal link within the site should result in an immediate response without querying the application server.
Clicking on an external link leaves the site (and SPA).