What Is a Progressive Web App?
A PWA is a website that behaves like a mobile app. Users visit your URL, add it to their home screen, and the experience is app-like: offline support, push notifications, full-screen mode, fast loading.
PWAs don't require App Store approval. They update instantly when you deploy. They work on iOS (limited) and Android (full support). And they're significantly cheaper to build, if you already have a WeWeb web app, enabling PWA is a configuration change, not a rebuild.
PWA Advantages
**No App Store gatekeeping**: Deploy instantly, update without review. Critical for MVPs where you're iterating fast.
**One codebase**: Your web app is your mobile app. WeWeb supports PWA out of the box, enable it in project settings and configure a manifest.json.
**Lower distribution friction**: Users don't have to find you on the App Store, install, and grant permissions before they see value. They click a link, use the app, and add to home screen if they like it.
**Lower cost**: If you already have a WeWeb app, PWA support costs nothing extra to develop.
PWA Limitations
**iOS restrictions**: Safari on iOS has limited PWA support. Push notifications only work on iOS 16.4+ after the user explicitly adds to home screen. Biometric auth (Face ID, Touch ID) isn't available in PWAs on iOS.
**Performance ceiling**: PWAs run in a browser engine. For complex animations, video processing, or hardware-intensive features, native apps are faster.
**No App Store presence**: You can't appear in App Store search results or run App Store Ads. If your growth strategy depends on organic App Store discovery, you need a native app.
**Limited hardware access**: Camera (basic), GPS (basic). Bluetooth, NFC, ARKit, background processing, not available in PWAs.
When to Choose Native (FlutterFlow)
Build a native app when:
1. **Your audience expects an App Store app**: Consumer apps, apps for less tech-savvy users, or apps in categories (health, fitness, finance) where App Store presence builds trust. 2. **You need hardware features**: Bluetooth, NFC, offline maps, background sync, push notifications that reliably work on iOS. 3. **Performance is a product differentiator**: Real-time features, camera-heavy apps, social feeds with complex animations. 4. **App Store SEO is a channel**: Many successful apps get 30–60% of users from organic App Store search. PWAs can't participate in this channel.
Our Recommended Approach for MVPs
Start with a WeWeb web app + PWA mode enabled. This gets you: - A functioning product in 3–4 weeks - Mobile-friendly experience - Shareable URL (key for early user testing) - No App Store review friction
If after 3 months you have 500+ active users and the #1 request is "native app," build the FlutterFlow version. You'll do it with real user feedback, real data about how people use the product, and the resources that come from having a validated product.
Shipping a native app before validation is one of the most common expensive mistakes we see early-stage founders make.
PWA Installation and Offline Mode: How It Actually Works
When a user visits a PWA on Android, Chrome shows an "Add to Home Screen" banner automatically after a few visits that meet the PWA installability criteria: a valid manifest.json, a registered service worker, and HTTPS. On iOS, the user must manually tap the share button and select "Add to Home Screen", no prompt is shown, which significantly reduces adoption on Apple devices.
Offline mode in a PWA is powered by a Service Worker, a JavaScript file that intercepts network requests and serves cached responses when the network is unavailable. For a WeWeb app, this means caching the app shell (HTML, CSS, JS) so the interface loads even offline. However, dynamic data from Supabase requires an additional caching strategy: you must store API responses in the Cache API or IndexedDB, then serve stale data when the network request fails.
Implementing a robust offline mode in a WeWeb PWA requires custom JavaScript. The out-of-the-box PWA support in WeWeb caches the app shell but not your data. For apps where offline data access is critical, field service tools, inventory apps used in warehouses, a FlutterFlow native app with Supabase offline sync is the more reliable choice.
Push Notifications: PWA vs Native
Push notifications in a native app are the gold standard. FlutterFlow apps using Firebase Cloud Messaging (FCM) can send notifications to iOS and Android, with full support for rich notifications (images, action buttons, deep links), scheduled delivery, and background wake-up. Notification delivery rates on native apps consistently exceed 95%.
PWA push notifications use the Web Push API. On Android, Chrome PWAs support push notifications and they work well, comparable to native apps in delivery reliability. On iOS, the situation improved significantly with iOS 16.4 (released 2023): Safari on iOS now supports Web Push, but only for PWAs that have been added to the home screen. Web Push does not work in Safari browser tabs on iOS, only in installed PWAs.
For products where push notification reliability is business-critical, delivery alerts, urgent notifications, time-sensitive reminders, native is still the safer choice. For products where push is a nice-to-have engagement tool, the PWA Web Push API is sufficient if you accept that iOS users must install the PWA first.
App Store Distribution vs Web Distribution
The App Store and Google Play offer a distribution advantage that URLs cannot replicate: discoverability. Users searching "expense tracker" or "team scheduling app" in the App Store encounter native apps, not web apps. App Store Optimisation (ASO) is a genuine growth channel, many apps derive 40–60% of new installs from organic App Store search.
Web distribution via URL has its own advantages. You can share the link in an email, a tweet, or a QR code. Users can try the product before installing anything. You control the update cycle, a bug fix is live in minutes, not after a 24–48 hour App Store review. For B2B tools shared inside organisations, web links are often easier to distribute than asking every employee to install an app.
The right distribution strategy depends on your user acquisition model. If your growth is SEO, paid ads, or word-of-mouth through links, a PWA distributed via URL may acquire users faster. If your growth depends on App Store presence, reviews, and category rankings, you need a native app. Most products we build at App Studio serve a defined user base invited by the product owner, in those cases, web distribution is simpler and more efficient.
Building a PWA With WeWeb: What's Possible
WeWeb has built-in PWA support that you enable in the project settings. Once enabled, WeWeb generates a manifest.json with your app name, icons, theme colour, and display mode (standalone removes the browser chrome, making the installed app feel fully native). WeWeb also registers a basic service worker that caches the app shell.
From the WeWeb editor, you can configure the splash screen colours, the app icon at each required size, the orientation lock (portrait or landscape), and whether the app bar colour matches your brand. These settings map directly to the manifest.json properties that browsers use when installing the PWA.
For the data caching layer, you'll write custom JavaScript. A common pattern is to add a WeWeb JavaScript action on page load that checks `navigator.onLine`, fetches fresh data if online, and falls back to a `localStorage` cache if offline. This gives users a meaningful offline state rather than a blank error screen. Most of our client PWAs implement this pattern for their most-used read-only screens.
When PWA Is Good Enough
For a large category of business applications, a PWA is not just an acceptable compromise, it's the right choice. B2B tools used by employees at their desks or on company Android devices, internal dashboards accessed occasionally on mobile, and client portals where the primary workflow is reviewing and approving data are all categories where PWA performs well in practice.
Specifically, a WeWeb PWA is good enough when: all your users are on Android or modern iOS 16.4+; your app is primarily forms, tables, and data viewing; you don't need Bluetooth, NFC, or deep camera integration; and you update the product frequently (PWA updates instantly, native requires a new App Store release).
The decision framework we use at App Studio: if the product has paying users who chose it based on its mobile capability, build native. If mobile is one of several ways users access the product, build PWA first and upgrade to native when user feedback confirms it's worth the investment.