Offline & PWA
IssuesId is a Progressive Web App. There's no app store, no MDM enrolment, no native build to download. Open it in any modern browser, install it to the home screen, and it works as if it were native — including without a signal.
Install to home screen
On a phone or tablet, the browser will offer an install prompt the first time you visit the app on a route the platform supports. After install:
- →The app launches in its own window, with no browser chrome.
- →It appears on the home screen and in the app switcher.
- →Updates land in the background — there's an update banner when a new version is ready.
If you dismiss the install prompt, you can re-trigger it from the in-app install banner.
What works offline
The app shell — all the screens, navigation, and UI code — is precached the first time you load the app. After that, you can open the app, navigate around, and work on most surfaces without a connection.
Offline-capable actions include:
- →Capturing defects — photo, location, voice note, trade, priority.
- →Annotating photos and drawings — pins, captions.
- →Running inspections — ticking items, signing off.
- →Adding comments.
- →QR-coded navigation —
/scan,/q/<token>, and per-location summary pages are explicitly offline-capable so a code-scan on site still lands you in the right place when you're underground.
Actions that need a connection (like fetching a fresh report or syncing with Aconex) wait until you're back online.
The sync queue
Every offline action lands in a local queue (IndexedDB). The queue is:
- →Visible at all times — the bell-with-counter icon in the top bar shows how many items are pending sync.
- →Resilient — survives app closes, reboots, and brief connectivity drops.
- →Processed in order — items sync in the order they were captured, so the on-server timeline matches the on-site one.
When you regain a connection, the queue drains automatically. You don't have to do anything.
Connectivity indicator
A small green/grey dot in the top bar shows your current connection state. Green: you're online and synced. Grey: you're offline (or the platform briefly lost its socket). When grey, anything you do queues; when it goes green, the queue starts draining.
Cached files and presigned URLs
Photos, drawings, and other attachments are served via short-lived presigned URLs. The service worker is configured to strip the URL's query string when caching — so when a new presigned URL is issued for the same file, the cache still hits without redownloading. This matters because presigns refresh every hour: without that handling, your cache would invalidate constantly.
Updates
When a new version of the app is deployed, the service worker downloads it in the background. You'll see an update banner with a Refresh button — clicking it reloads into the new version. The reload is one-tap and your in-flight work (open forms, queued items) is preserved.
What to read next
- →QR codes — the on-site navigation tool that's explicitly offline-capable.
- →Photos & annotations — captured offline, synced when you reconnect.
- →Defects — the primary thing you'll capture offline.