General principles
- Keep client rendering load as light as possible (especially for gallery)
- Don't enforce a wait for the API at the end of the scroll
Could possibly keep a page of data in reserve (i.e. requested from the API but not rendered) while the next API call is in progress. Could also initiate the next API call earlier (before user has scrolled all the way to the end)