Great idea with the static JSON file. Also I like the filtering is nice and zippy because it's all happening client-side (according to lack of activity in my network tab).
Edit: I should say of course you can have zippy client-side stuff without the bloat (for example: just filter the JSON object and update the DOM yourself without a framework!). So it doesn't _really_ come at a cost, just typically the most expedient way a reactive UI is put together uses a framework like React.
To put things into perspective: the preview images are around 20–60K each, so if you scroll the entire list, you end up downloading ~5M. If at all, this is where I’d start to look at in terms of optimising bandwidth.