I’ve redesigned this website once again. Now, I use hakyll to generate a static site from a set of a templates and content data (mostly formatted using markdown). My personal site is quite small and it’s possible to host the entire thing on Amazon’s S3 cloud storage service. This avoids the need for a server (well, mostly) and results in fast response times at very low cost.
Cloudfront is Amazon’s Content Delivery Network. They have a couple dozen servers distributed around the world. If someone near one of those servers accesses my site, then a local copy is cached in that region for the next 24 hours.
Here’s an example from Stockholm. Before the site is being cached by Amazon in Stockholm, the first request takes 2.5 seconds to load. Now, the following request loads in only 600ms and it’ll be that way for a while.
I’ve eliminated all other DNS lookups and consolidated files where appropriate for efficiency. I’ve deferred loading jQuery until after the page load, which results in the time flickering from yy-mm-dd to pretty printed time sinces.
I based my site on Petar Radošević’s wunki. My code (and his) is available on GitHub.