Tom Preston-Werner, the original creator of Jekyll and co-founder of Github, gave a talk back in 2015 at JekyllConf2015 that’s mind-blowing. The general theme is on the future of static sites.

In the main section he lays out a number of ideas around how we could make static sites more dynamic:

  • interacting with an external database via Javascript
  • regenerating the site itself in the cloud rather than locally
  • putting all of a site’s content into a dynamically updated static site object
  • and, the possibilities around using websockets for inbound traffic

But what really got me thinking was a question near the end from the moderator: “The early web was static, then we went dynamic, and now we’re in a middle ground. Do you think the time is right for a big migration to static?”

Preston-Werner’s response was to point out that large sites are already basically static thanks to caching and CDNs. He reframed the question as, Where is the layer of static generation?

This is a very elegant way to think about the issue. For a simple site like this one, the static generation occurs from the beginning thanks to a static site generator. For a large site like Github, it’s using caching, CDNs, and other tools to effectively generate static files at a deeper layer of the stack. Virtually no sites at scale are doing real-time dynamic content generation.

As the JAMStack movement picks up steam and new services like AWS Lambda and Google Firebase offer “serverless” static sites with dynamic capabilities, this idea of static vs dynamic being more of a layer question really opened my eyes.