ATStatus
ATStatus WikiLoading documentation...

Progressive Web App

Install your status page as a native app

Progressive Web App (PWA) allows users to install your status page directly to their home screen or desktop, providing an app-like experience without an app store.

Clean Build Default: PWA is disabled by default. Enable it in Admin → Settings → Features.

Why Enable PWA?

Installable

Add to home screen like a native app

Offline Support

View cached status without internet

Push Notifications

Get updates even when app is closed

Fast Loading

Cached assets load instantly

Enabling PWA

  1. Navigate to Admin Panel → Settings → Features
  2. Enable the enablePWA toggle
  3. Save settings

Once enabled, users will see an install prompt when visiting your status page.

Browser Support

BrowserInstallation Method
Chrome/EdgeInstall button in address bar + banner prompt
FirefoxInstall from browser menu
Safari/iOSShare → Add to Home Screen
Samsung InternetInstall banner appears automatically

Service Worker Features

ATStatus includes a service worker that handles:

  • Asset caching - Static files cached for offline access
  • Offline page - Shows cached status when offline
  • Background sync - Syncs data when connection restored
  • Push notifications - Receives and displays updates

Push Notifications

When PWA is enabled, users can subscribe to push notifications:

  1. User visits your status page
  2. User is prompted to enable notifications
  3. On accepting, they receive status updates even when not viewing the page
Requirements: Push notifications require HTTPS and a valid VAPID key configured in your environment variables.

VAPID Key Setup

# Generate VAPID keys
npx web-push generate-vapid-keys

# Add to .env file
NEXT_PUBLIC_VAPID_PUBLIC_KEY=your-public-key
VAPID_PRIVATE_KEY=your-private-key
VAPID_EMAIL=mailto:admin@example.com

Offline Experience

When users lose internet connectivity, the PWA displays a cached version of the status page. This includes:

  • Last known status of all components
  • Timestamp of when data was last updated
  • Visual indicator that they're viewing cached data
  • Automatic refresh when connection is restored