What would happen if I approached blogging from a software development perspective?
The Dynamic, Static Web
I made the website where this post is published using Jekyll, a static site generator written by Tom Preston-Werner. Jekyll is probably the most commonly-used software in its class, since it drives GitHub Pages.
Although the very first website comprised plain hypertext documents, today much of the Web runs on dynamic software and data stores. This makes the recent renaissance of static websites look like little more than a novelty.
There are very real, practical advantages to making websites static, specifically in terms of increased performance, security, and ease of deployment and maintenance.
For these reasons, static websites make eminent sense from a business or operations perspective. However, I do not believe this entirely explains the popularity of static site generators. The best justification, in my mind, is the one that announced Jekyll.
Blogging Like a Hacker
Tom Preston-Werner introduced his new static website generator in 2008, in a post titled Blogging Like a Hacker. At the time he wanted to improve his personal writing and publishing practice, but found that the contemporary blogging engines and services were too complicated or encumbered.
Instead of giving up or giving in, he figured out an approach to the activity of blogging as an author not just of prose but of code. To this end he created a tool that worked the way he did, namely:
- write with a text editor
- manage from the command line
- do not repeat yourself
- make things customizable and extensible
- store and distribute using version control
Finally: release it all and let others hack on it.
The upshot is to treat the blog as source code, using the same tools and techniques. I believe this is the real reason that static site generators have become and remain popular (if niche). They allow hackers to write the way they work best: with code.
Category: Articles
Christopher Adams is an art producer and computer programmer based in Taipei.