Building static Web sites is appealing for a variety of reasons: The model can support a rather large range of use cases, allows to use simple tools and easy deployment, and makes it trivial for everybody to work on branches and forks of the complete site (try doing that in database-driven sites without getting into nasty database issues very quickly). For simple sites such as Web Concepts (GitHub repo) and HTML5 Overview (Github repo), I have come to love the simplicity and elegance of managing and updating the site, and in most cases I do it locally and then push the changes when I am connected again.
It is really appealing to follow the approach of "content as code" and to readily apply many of the principles and lessons we have learned from DevOps and Microservices. You could almost go as far as saying that static sites are essentially "serverless sites": The result of servicing a request is entirely determined by the request and the "running code" (the generated pages) of the site: there is no other state at play and thus things such as scaling, forking, branching, and testing become much easier.
In addition to that, the simplicity and elegance of the approach is enticing, even though the languages involved may not always be the most elegant ones. I have only dabbled in Jekyll a bit and have to admit that in terms of language design, Liquid is not really an object of beauty (it essentially feels like PHP with a slightly different syntax). But within certain limits, it does its job well enough, and the general simplicity of the setup and the workflow more than compensates for some of the shortcomings of the core language.
Recently, we starting thinking about an overhaul of the API Academy site, which currently is a Wordpress-driven site where we don't particularly love the layout or content organization. Our goal is to replace this with a site that is
first and foremost structured around and focused on content, so that we have a better way for us to publish various types of content (events, articles, podcasts, topic overview pages, and so forth);
is radically decentralized so that we can all clone, branch, and fork as we please, play around with new ideas, and merge the ones back that we agree on as worthwhile additions to the site;
provides APIs for easy consumption of the content, most likely in the form of RSS/Atom feeds which should be available for virtually all regularly updated forms of content; and
has a simple layout that will be easy to adapt to new kinds of content, so that once again the main focus is on the site being a conduit for content, and thus helps us to get more content published more easily.
Now that we have started to reach out to Web development professionals, it has been a surprise that so far not one agency we have contacted has experience in developing a Jekyll site or something along these lines. It doesn't need to be Jekyll, but if at all possible we want to get away from the limited model of database-driven sites, and practice what we preach: We own and manage our content, and the initial harness of page templates and layouts is specifically designed to make it easy to add structural richness. Our own site as a Microservice.
The question we're asking ourselves now: Is the idea of static sites one of those trends that will taper off quickly? Or is it just limited to extremely simple sites like the ones mentioned above? Playing with Jekyll and Liquid for a little while it seems as if a reasonably complicated mix of a YAML metadata model, some not terribly complicated Liquid coding, and some flexible and extensible layout templates should be able to support a site that has the specific goal of being content-focused, and providing good ways of exposing and repurposing the content.
We are really curious to find out more about this: has anybody built a static site that's more than just the prototypical blog and has the explicit goal of publishing structured content in a highly interlinked way? If so, what's the experience with this approach once we go beyond the simple blog model: does it still work well, and in particular in Jekyll? How hard is it to write Liquid code that does a bit more advanced things than just picking up tags from a blog post's YAML? And how hard is it to create templates that wrap all of this in a UI that's simple but still refined enough for a modern responsive UX? And lastly, are you an agency or individual and you've done this? If so, get in touch and send references!
Comments