This is how OpenWrt works already, more LuCI modules can be added as desired.
- Cache where?
- The browser?
- How, if the user has no Internet?
And if there's no Internet, you've saved the user from needing to program a router for Internet. This is a chicken-and-the-egg problem/solution. Also, how do you download the software if there's an outage?
In your description, you have to perform a download, then process that data. Currently on OpenWrt, you just process the page.
It does sound like you wish to write a client-side app.