Docs/Install & Offline Usage
Install & Offline Usage
StudyMap is a Progressive Web App: install it to your home screen and it keeps working with a weak or absent signal, useful on exam day.
- Android (Chrome): tap the ⋮ menu and choose Install app (or Add to Home screen), or tap the install icon in the address bar if it appears.
- iPhone/iPad (Safari): tap the Share button, then Add to Home Screen.
- Desktop (Chrome/Edge): click the install icon in the address bar, or open the browser menu and choose Install StudyMap....
StudyMap doesn't show its own install button - this is entirely your browser's native feature, driven by the app's manifest and service worker.
- The app shell (home, map, and other pages you've visited before).
- Map tiles you've already panned/zoomed to - cached as you browse, up to 300 tiles, so the whole world isn't hoarded on your device.
- Any page you haven't visited yet falls back to an Offline screen instead of a browser error.
Signing in, saving a new place, or loading a city you've never opened still needs a connection - only what's already cached works fully offline.
Two caches, each tagged with a version: an app cache (page shell, build assets, icons) and a tile cache (map tiles from MapTiler). Page loads try the network first and fall back to the cache when offline; static assets and tiles are cache-first since they don't change under the same URL.
Every deploy bumps the version, which deletes old caches once the new service worker activates - normally a reload is enough to pick up a new release.
Try these in order:
- Hard refresh: Cmd+Shift+R on Mac, Ctrl+Shift+R or Ctrl+F5 on Windows/Linux.
- Clear site data:in your browser's dev tools (Application tab in Chrome/Edge, Storage in Firefox), clear Service Workers, Cache Storage, and Storage for the site, then reload.
- Reinstall the PWA: if you installed it to your home screen, remove it and reinstall from the site.
If none of these help, the deploy itself likely hasn't shipped yet - check the deployment status before assuming it's a caching issue.