
Something I'd like to note about our constituency dashboards https://open-innovations.github.io/constituency-api-test/ is that the front page is only 134kB (49kB transferred).
An individual constituency dashboard page is generally under 400kB (<100kB transferred) but this is a bit variable depending on the file size of the MP thumbnail that comes from Parliament.
Javascript (for nice tooltips and filtering) is a progressive enhancement; the graphs still work without it because they are static SVG.