First, the best place to figure out how it works is to take a look at the source code over at https://github.com/ovdojoey/JLV3. It's actually my fourth official version, but what can you do.
Below, I will cover some of the features that this site has, many of which may be invisible to the end user. One of the most debated is scrolljacking.
When you jack someone's scroll, people get mad. And rightfully so. Messing with the scroll is typically a UX no-no. But, I decided that it would add to my website mainly because there is no ability to scroll on this website. Everything you see on the homepage is contained in the viewport. Thus, the user cannot actually scroll at all. So I'd really consider the technique to be scroll supplementing. On the other pages scrolling is done using a technique called Virtual Scroll by Bartek Drozdz.
replaceState can allow you to modify the URL's and the
browser history, edging you closer to a web application rather than a set of pages.
I decided to make use of HTML5 History API's because I
wanted to be able to load content without causing page reloads, and to have full
control over the user experience when they are jumping from article to article.
I love some of the new features of ES6 and had to take advantage of them in this project. To use ES6, I simply added Babel to my gulp tooling setup.
More to come. If you have any questions, feel free to reach out and ask me!