Skip to content

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 Performing Glastonbury archive homepage, with a search box above a grid of festival records.

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.

The archive search overlay, showing results filtered to stages alongside record type facets with counts for performances, contributors and stages.

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.

The 1970 festival page, titled Pop, Folk and Blues, over a photograph of tents in a field, with a badge reading fifteen performances catalogued so far.

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”.

The Pyramid Stage 1971 record page, with no photograph available, showing a badge reading twenty five performances catalogued so far.
The Pyramid Stage 1971 record page, with no photograph available, showing a badge reading twenty five performances catalogued so far.
A stage record with no photograph yet. The pilot launched with much of the archive still undigitised, so every template had to look deliberate with pieces missing.

More work like this

Skip the agency. Keep the quality.

If you need a new website, improvements to your existing site, or even just maintenance or support, I can help.