This site

January 1, 1996

This site has been live on the web for a majority of the existence of the web. At this point a lot of the content is more interesting as a record of a point in time, than as its own thing.

Past versions of this site have been built using various tooling, including (but not limited to)

  • Vue3 / Nuxt with a MySql backend and serverside rendering
  • Clientside Vue2 with some light python
  • Static webpack renders against a JSON database
  • Hugo (briefly, and unsuccessfully)
  • A collection of Perl CGI scripts

...because tinkering with the undercarriage is the primary activity involved in maintaining a blog, as it offers endless opportunity for safely testing out new techniques or technologies, not to mention both bikeshedding and yak shaving.

The central conceit has always been to separate the site’s structure from its content. Pages are the hierarchy; Pool Items are pieces of content that pages gather through filters. The same Item might live under several Pages, with navigation that reflects where you found it. A lot of other site features have come and go, but that part has stayed pretty consistent for a lot of years.

The current version sheds a lot of complexity; it is as boringly simple as possible: plain old PHP / sqlite with a light template mechanism. It should be reasonably usable if you want to borrow the code and customize it for your own purposes.

This site