In this example, each page can be independently accessed, pre-rendered and lazy-loaded. However, when we transition on the client side, smooth animations are possible.
When we announced Universal webpack, we pointed out it was possible to use TypeScript via ts-loader, as we now run webpack both on the server and the client.
Babel 7 features built-in support for TypeScript (previously only Flow was supported by Babel).
To use it, just install the latest version of @zeit/next-typescript or check out this example.