Performing Glastonbury
Fifty years of Glastonbury, made searchable.
The V&A and the Arts and Humanities Research Council set out to document fifty years of performance at Glastonbury Festival, from a field in 1970 to the biggest greenfield festival in the world. I built the front-end.
The data lives somewhere else
Glastonbury’s performance history was catalogued in AusStage, a research database used by performing arts scholars. That was the source of truth and it was staying that way, because asking the V&A team to maintain the same records twice would have guaranteed the archive drifted out of date within months.
A colleague built the pipeline that reads AusStage and turns it into a JSON dataset. I took that dataset and built everything in front of it, with Hugo, Tailwind and Vite.
Search had to feel instant
The archive holds 3,389 performances, 2,218 contributors and 17 stages across 39 festival years. People arrive looking for a band, a year, or a stage they once stood in front of, and they will not wait while a server thinks about it.
Every record is indexed in Algolia, so results and facet counts update as you type. You can narrow by record type, year or stage without a page load, and the number beside each filter tells you what you will get before you click it.
A page for every record
Hugo reads the dataset at build time and generates a static page for each performance, artist, stage and festival year. By the time anyone visits, the work is already done.
For a museum that means a site which is fast, cheap to run and very hard to break, even when a Glastonbury anniversary sends a wave of traffic at it. There is no database to fall over, because there isn’t one.
How it holds together
Indexed, not queried
Every record sits in an Algolia index, so results and facet counts appear as you type rather than after a round trip to a server.
Static by default
Hugo turns the dataset into flat HTML at build time, so browsing by year or stage costs nothing at request time.
Cheap to run, hard to break
Flat files on AWS. No application server to patch, no database to tune, and a traffic spike costs almost nothing.
Honest about the gaps
It launched as a pilot with much of the catalogue undigitised, so every count carries an asterisk reading “catalogued so far”.