I hated the buzzwordy "web version numbers" but when you think about it, it does go through major iterations over time. Everyone copies each other until someone has a newer, faster, cheaper, more secure way of doing it; and then everyone copies that, and so on.
So here is a project template to make Web 4.0 sites. Too bad we skipped over 3.0 and never got around to doing that whole "Semantic Web" thing very well. Web 4.0 sites (really, applications) operate like you think of Facebook and Google. The whole website ends up being a client-side app, either literally on mobile or figuratively in a web browser. It acts on its own with local storage, but when it can, it communicates with the server regarding updates.
It is also written in and keeps up with the current iteration of ECMAScript. We install some babel plugins and polyfills to ensure that you can use the most recent version of the language, and it will still work in popular web browsers.
The uncommented dependencies in package.json are the minimal set for this sort of thing. The rest of the commented out libraries are my preferences for optional functionality. But don't just include everything, only include something if you need it.