I’d use CSS Grid for the layout and keep the image data in an array of objects. That makes sorting and filtering easy later without changing the UI structure. React state can handle the filters and sorting, while each image is rendered through a reusable component.