PWA Fundamentals: Manifest, Installability & Offline UX
Progressive Web Apps combine a Web App Manifest for installability, a Service Worker for offline capability and caching, and thoughtful UX design. Success depends on clear boundaries between static shell, dynamic data, and safe update behavior.
The manifest is the app icon and home screen metadata. The Service Worker is the background engine that makes it work offline and fast. The real challenge is designing an experience that feels native while gracefully handling network changes and version updates.
1Web App Manifest
Defines how the app appears when installed: name, icons, display mode (standalone/minimal-ui), start_url, theme_color, etc.
{
"name": "My App",
"short_name": "App",
"icons": [{ "src": "icon-192.png", "sizes": "192x192" }],
"start_url": "/",
"display": "standalone",
"theme_color": "#000000"
}2Installability Criteria
Requires HTTPS, a valid manifest, and a service worker controlling the page. Install prompts vary by browser and platform.
3Offline UX & Caching Strategy
Separate app shell (aggressively cached) from dynamic data (network-first or stale-while-revalidate). Design clear offline states and graceful degradation.
4Update Lifecycle
Manage service worker activation carefully to avoid stale shells. Use versioned caches and consider user prompts for updates.
| Property | App Shell | Dynamic Data |
|---|---|---|
| Caching | Aggressive (cache-first) | Network-first or stale-while-revalidate |
| Use Case | Static UI, icons, fonts | Feeds, user data, prices |
| Freshness | Versioned assets | Business dependent |
App Shell
Caching
Aggressive (cache-first)
Use Case
Static UI, icons, fonts
Freshness
Versioned assets
Dynamic Data
Caching
Network-first or stale-while-revalidate
Use Case
Feeds, user data, prices
Freshness
Business dependent
Common questions
- ›“What makes a web app installable as a PWA?”
- ›“How do you design good offline experiences?”
- ›“Explain the service worker update lifecycle.”
- ›“How do you separate caching for shell vs dynamic data?”
What interviewers look for
- Understanding of manifest + service worker roles
- Product thinking around offline UX contracts
- Awareness of update lifecycle risks
- Separation of static shell vs dynamic data
Short answer (60 sec)
A PWA needs a Web App Manifest for install metadata, a Service Worker for offline/caching behavior, and deliberate offline UX design. Cache the app shell aggressively while treating dynamic data with appropriate freshness rules.
Detailed answer (senior level)
The manifest controls install appearance and behavior. The Service Worker intercepts requests for caching and offline support. Offline UX should clearly communicate what works without network. The hardest part is safe updates — version caches, clean old ones, and avoid trapping users on stale shells. Strong answers treat PWA as a reliability contract, not just a feature.
- Caching everything aggressively (stale content after deploys)
- Ignoring offline UX design (blank screens on disconnect)
- Poor update lifecycle leading to mixed versions
- Not separating shell from dynamic data
- Assuming all features must work fully offline
- ✓Manifest defines install identity and appearance
- ✓Service Worker powers offline capability and caching
- ✓Separate app shell (cache-first) from dynamic data
- ✓Design intentional offline experiences and graceful degradation
- ✓Manage service worker updates carefully to avoid stale clients
- ✓PWA quality is about trust and reliability, not just install buttons
- ✓Test offline flows and update scenarios in real conditions