pwalisted
Install: claude install-skill MartinOlivero/saas-builder
# PWA
This skill makes a React + Vite app installable and offline-capable — the realistic middle ground between a plain website and a full native app. For a web-SaaS builder, this is the common mobile need; full React Native is rare and better served by Expo's own skills.
Analogy: a PWA is a food truck. It's the same kitchen as the restaurant (your web app), but it can park on the user's home screen and keep serving when the main location's network is down. You don't need to build a second restaurant (a native app) to get there.
## When to use this vs going native
- **PWA (this skill)** → installable, offline, push for an existing web app. Covers most "we need mobile" requests.
- **Full React Native** → only when you need deep native APIs, app-store presence, or heavy device integration. Delegate to **`expo/skills`** (official, ~2k⭐) rather than rebuilding it here. At most, share TS types/API client via a monorepo `packages/shared`.
## Discovery (max 3 questions, only if unknown)
1. What's the goal — installable, offline reads, offline writes, or push notifications?
2. Is this an existing Vite app, or starting fresh?
3. Do you need push on iOS? (It only works for *installed* PWAs, Safari 16.4+.)
## Step 1 — Install and configure
Add **`vite-plugin-pwa`** (~4k⭐, Workbox-based). Start with `registerType: 'autoUpdate'` and the `generateSW` strategy to precache the app shell + static assets. This plus a Web App Manifest and HTTPS = installable.
## Step 2 — Author the man