This actually handles that, at least for my use case. Specifically, on first load of the page (in a browser, or the stripped-down browser that runs the app-like PWA install) a service worker gets installed, that caches the entire site/app/map locally, and runs it from there. Then every 24 hours, or on new page load, it checks the live site for content changes and pulls down the changes if they exist. If there's no network connectivity it just silently runs the map.
Each map is 16MB - 20MB in total, so this is all nice and simple to do. Even on a slow 3G connection it's only a minute or so for a full map update to stream in.
The whole point of this system was to take a snapshot of data (mostly OSM), add on some local things that can't really be represented in OSM (like WHICH parking lots are most appropriate, stylistic overrides, system descriptions, etc) and display them. Because of issues I've had in the past with well-meaning-but-misguided OSM mappers wrongly editing trail systems I did not want anything that pulls live.
And then by having purely static content the hosting is very cheap and easy, there's no security concerns around... well... anything dynamic on the site. And each map is portable were I to want someone else to host them. And literally in a couple of years if I haven't updated the map it won't change yet still will work, and that's fine and accepted for this use. Sort-of like a mobile version of a traditional print map. Kinda like the print workflow of editing/design/etc and then rendering the PDF, but web.
This all aligned nicely for me to have a tool that works this way, with each map generated by a tool.
(Sort-of disclaimer: It was also a big personal project in learning to work with AI stuff for development. I knew and understood the inputs and outputs, was able to design the UI, handled/managed all the testing... But I didn't have to worry about the actual-code part. I was able to make pretty quick progress and iterate nicely on my ideas.)
Happy to talk, etc, more about it too. Either here, or contact info is on the site.