Notes on the Website
This website is a compromise between design and performance, with a slight bias towards the latter. I have taken various steps to ensure the website loads as fast as possible, including:
- Minifying HTML, CSS, and JavaScript.
- Inlining CSS in the home page so that the user does not have to wait for HTTP requests for stylesheets, speeding up rendering.
- Making non-render-blocking requests for CSS files needed in other pages, in the home page, so that these are cached by the browser, improving load speed of other pages (making the reasonable assumption that the user lands on the home page).
- Not inlining CSS in other pages - thereby reducing their size - as the CSS files needed by them have already been pre-cached during home page load (again, making the assumption that the user lands on the home page).
- Optimising images, including using progressive JPEGs.
- Setting Cache-Control on the web server such that stylesheets, images, and fonts have long cache lifetimes.
Not using web fonts would also improve performance, but this is where the design compromise comes in. However, I have optimised font requests such that only those characters used on the website are fetched.
Design considerations include, apart from using web fonts, implementing responsive design, such that the website renders well on screens of any reasonable size, and selective fetching of images depending on the pixel density of the user's screen.