Full circle

December 25, 2012

Way back in 1997 I put my first homepage online. I used some kind of page generator of the time - possibly Pagemill - and uploaded the result to Torget or some such site. I created static pages one by one, and static pages was all I had the ability to do. I immediately started dreaming of content management system-like things - dynamically included headers, footers and menus; things which did not require manual adjustments everywhere when a page was added and which did not require explicit inclusion each time I wanted a new page.

Pretty soon I turned to frames and CSS, each of which helped offset some of the manual update work. Then, in the early 2000s, I got myself a proper web host (it cost money!) and - bit by bit - put together my own little PHP powered content management system.

And it was pretty good. I could update from wherever I wanted and I never had to think much about the surrounding layout, menus, timestamps and other things when writing a new post. And there was that nagging feeling of wastefulness. Generating pages from database queries and up on each and every page load sure looked pretty wasteful. And there is always security, except through obscurity my own content management system is likely the least secure thing in the world.

So, this modern age. People have started talking of "static blogging engines" - contraptions which build retro-tastic static HTML pages from source files. You write, the engine chews on your input and spits out a new set of static pages representing your site as it currently exists. It it something like compiling your site from sources instead of the server-side way of creating it just in time for each viewer.

The idea appealed to me.

So I built my own.

The page on which you read this has been generated by Bakery. Bakery is a simple Python program to generate a simple site for me. I write in Markdown, like the trendy people do. It was fun to build and I hope we will remain great friends for a long time.