Web app · API/2026Team project
MetHub
Met Museum collection explorer
The challenge
The museum API returns incomplete metadata and requires many requests per search. The interface had to stay fast and tolerate partial failures without overwhelming the service.
My role
Team project. My contribution: router architecture, the synchronous/asynchronous render cycle, request control and the object comparison algorithm.
Technical decisions
- 01
Promise.allSettled instead of Promise.all: one failed artwork does not break the gallery.
- 02
AbortController and timeouts to discard slow requests.
- 03
Debounce and input locking to prevent request bursts.
- 04
Data inserted with textContent to prevent HTML injection.
Outcome
An explorer with global search, department navigation, batch-paginated galleries and a side-by-side comparator with a chronological delta.