Several things can be optimized. First, we don't need to grab all book data for the grid or shelves. We really only need (for the grid) image, title, subtitle, and id, and (for the shelves) spine color, title, and dimension data. Second, there are several things we can load asynchronously and more locally. These include reviews in the book view, dimension data (and eventually other data) in statistics, and the data for the autocompletes and dropdowns in the editor. All of these only need to be loaded when their respective view is needed (so when a stat view is pulled up or an autocomplete is started)
Several things can be optimized. First, we don't need to grab all book data for the grid or shelves. We really only need (for the grid) image, title, subtitle, and id, and (for the shelves) spine color, title, and dimension data. Second, there are several things we can load asynchronously and more locally. These include reviews in the book view, dimension data (and eventually other data) in statistics, and the data for the autocompletes and dropdowns in the editor. All of these only need to be loaded when their respective view is needed (so when a stat view is pulled up or an autocomplete is started)