Offline Cache
What is stored on the device for offline use, how the list is built, and the staleness that caching buys you.
Configuring the Cache
The offline cache stores files on the device so pages work without a connection.
Where to find it
Architect Panel → Layout & Pages:
- Dependencies — the files the site loads, and what the offline cache is built from
Architect Panel → Configuration:
- Site Settings — the Progressive Web App and Service Workers option groups
Where the list comes from
The cached file list is built from the site’s registered dependencies, filtered by scope. Each dependency names a URL, a type, whether it was added automatically, and which scope it belongs to — the main website, the web app, the admin panel, or all of them.
So the cache is not configured separately; it follows from what your site already declares it needs.
Images are included automatically
Everything under the images directory is added to the cache without being listed. That is convenient and it is worth knowing, because a large image library becomes a large first-load download.
If your images directory has accumulated years of unused files, the offline cache is a reason to clear them out.
Scope decides what goes where
A dependency scoped to everything is cached in every scope. One scoped to the web app is cached only there. Getting this right keeps each scope’s cache to what that scope actually needs.
Cache-first, then network
The service worker looks in the cache first, then goes to the network and stores what it finds. That is what makes repeat visits fast and offline use possible.
It is also what makes stale content possible, which is the trade you are accepting.
Failures are per file
If caching the whole list at once fails, files are cached one at a time so one bad entry does not lose the lot. A URL that cannot be fetched is skipped with a warning rather than breaking the install.
Which means a broken dependency is quietly not cached — check the browser console when something is not working offline.
Keep the list honest
Dependencies accumulate. Files for a feature you removed, a library replaced two years ago, a script nothing loads — all still cached, all still downloaded on first visit.
A periodic review of the dependency list is worth it for load time alone.
Version changes matter
When you deploy new assets, users with an existing cache may keep the old ones for a while. Plan for that: either version your asset filenames so new ones are genuinely new, or expect a lag.
Test properly offline
Load the app, then put the device into flight mode and use it. That is the only real test, and it will show immediately which parts work and which are blank.
Worked example
An organisation reviewed its dependency list before enabling caching and removed nineteen entries for retired features, along with several hundred unused images. First load fell substantially. Offline behaviour was tested in flight mode on a real phone.
Recommendations
- Review dependencies before enabling the cache.
- Clear out unused images — they are cached automatically.
- Scope dependencies rather than caching everything everywhere.
- Test in flight mode on a real device.
What Works Offline
Offline caching stores files. It does not store your data, and the difference decides what actually works.
Where to find it
Architect Panel → Configuration:
- Site Settings — the Progressive Web App and Service Workers option groups
Architect Panel → Layout & Pages:
- Dependencies — the files the site loads, and what the offline cache is built from
What survives offline
- Cached pages and assets — the interface loads.
- Images already cached.
- Scripts and styles, so the application looks and behaves normally.
What does not
- Anything read from the database. Lists, records, search results — all of it needs the server.
- Saving anything. A submission with no connection does not queue itself.
- Signing in.
- Anything from another service.
So an offline web app shows its shell and very little else. Understanding that prevents promising something the technology does not do.
Say so to users
The dangerous outcome is a user who believes the app works offline, does an hour of work in a tunnel, and loses it. That is worse than an app that plainly refuses.
Where a connection is genuinely lost, the honest thing is to say so on screen.
It is mostly about speed
Which is the real benefit and is undersold. Cached assets mean the app loads immediately on repeat visits and survives a brief connection drop without a browser error page.
For most organisations that is the whole value, and it is worth having.
Staleness is the cost
Cached files are served ahead of the network, so a user can be running yesterday’s interface. Usually harmless; occasionally the reason one person sees a bug nobody else can reproduce.
"Have they still got an old cache" belongs early in your support script.
If you need real offline working
Records available and changes queued while disconnected, then synchronised — that is the native mobile app builder, which has an explicit offline mode and a retry window for queued operations.
A progressive web app is the right tool for a fast, installable interface. It is not the right tool for genuinely disconnected working.
Test what a user actually sees
Open the app offline from cold and look. Whatever appears is what your users will see in a lift, on a train or in a basement, and it is usually less than expected.
Worked example
An organisation enabled caching for speed rather than offline working, tested the app from cold in flight mode, and added a banner shown when the connection is lost. Support scripts now begin by asking whether the app has been closed and reopened.
Recommendations
- Treat it as a speed feature, not an offline one.
- Tell users when the connection is lost.
- Ask about stale caches early in support.
- Use the mobile app if you need real disconnected working.