There are truly startling feats recorded on the Wikipedia page for bird migration. The bar-tailed godwit flies 11000km non-stop from Alaska to New Zealand. That sort of thing.

Websites, thankfully, do not migrate annually, and nor do they lose over 55% of their body-weight in the process, but every so often the content has to move to a different technology stack. The MHRA website began with Dreamweaver, and was then hand-tooled for a while. The first major migration was in 2015, when the bibliographic data was formed into a MySQL database, while the site itself sat on top of the concrete5 content management system — specifically, concrete 5.7.

This was a defensible choice in 2015 (for example, the Cambridge University Press book catalogue was also built on concrete5), but it didn’t wear well. As WordPress consumed the market for blog-plus-extra-doodad websites, so concrete5 declined in popularity. It was always cranky to administer, and became steadily worse at updates: an automatic update packager exists, but often fails, and support websites about this give contradictory advice. In particular, it was difficult to migrate from 5.7 to 5.8 in any clean way, which was not as small an issue as it sounds, because 5.7 is now unable to run on any version of php not yet end-of-lifed on security grounds. We then decided in principle to migrate from concrete5.

This work was originally scheduled for late 2020, once our publishing obligations for the UK Research Excellence Framework were all met, but in mid-September our server hosting platform, DreamHost, abruptly withdrew use of php 7.1, killing any possibility of running concrete 5.7. This meant that our site was days from failing altogether, and indeed for a brief period on Thursday 17 September, it could not render a single page.

Three days later, migration is now functionally complete, albeit with some cosmetic blemishes. The website now uses pages built with jekyll (a Ruby-based static website generator) into which dynamic content is added by the server each time a page is served, using a large suite of code running directly on php 7.4. No concrete5, no WordPress, no plugins.


full news feed • subscribe via RSS