I mean I've seen this kind of thing before and I wanted to see if I could do it from scratch, as it were
(data is hidden inside a script tag right here)