I've recently made my first progressive web app (PWA), and I'm struggling to figure out a strategy for caching image assets. The PWA was specifically developed for mobile users on networks with slower-than-global-average download speeds. It's an image-heavy PWA for a digital exhibit of art works, here: https://caravans.library.northwestern.edu/
This is a one and done project (no push notifications, no user data collection, minimal updates). We want it to be install-able to make it easier to use on low-bandwidth networks and for the shell-like experience. At first, I wanted to limit the amount of network-requests users would need to make to install or use it offline. This led me to preaching EVERYTHING (about 12 MB). After more consideration, it felt wrong to create such a huge payload for a first visit.
I've now configured the service workers to pre-cache the HTML and cache the images at runtime. However, this will require more network requests to download the images. I think, maybe, it would be nice to set the PWA to runtime cache the images by default, and cache EVERYTHING if the user decides to install (i.e. 'Add to Homescreen') the PWA. I'm not sure if this is possible.
Is it ever a good idea to precache a ~12MB pwa? Which strategy would you use? Any advice would be appreciated.