Awesome article, thank you for sharing. I am currently working on a large-scale application myself, but I am lucky to be able to use IndexedDB because of the browsers we are targeting.<p>Same situation, except we are dealing with an application that has customer data and tonnes of entities. Fetching this data which can go into the thousands of rows of data, we actually intelligently prefetch data from the server on initial load and store it in IndexedDB.<p>Then we have an intelligent data layer which checks to see what data the client-side has and if it doesn't exist, it will ask the server for the data that it only needs (usually a few kilobytes) and then store it, so if requested anywhere else in the app it gets it from IndexedDB.<p>As a result we've seen app speed go up and the load on our databases and servers go down. The client-side is incredibly powerful if you support modern browsers to the point where you can reduce load substantially on the server.