Mobile Apps

PWA vs native app: what each can do and how to choose

A progressive web app can now do much of what founders assume needs a store app, and costs far less when a web product already exists. It also has limits that no amount of engineering removes. This guide states both plainly.

Mobile AppsUpdated September 21, 2026By the BBR engineering team

Short answer: choose a PWA when people reach you through links and search, use the product occasionally, and you do not depend on store discovery, store billing or deep device access. Choose a store app when the product is a daily habit, when notifications on iPhone are central, when you sell through in-app purchases, or when you need hardware and background features browsers do not expose. If you have a good web app and need the stores as well, wrap it with Capacitor and keep one codebase.

Terms. In this article “native app” means any app installed from the App Store or Google Play, which is how most founders use the phrase. Whether that store app should be written in Swift and Kotlin, in React Native or as a hybrid is a separate question, answered in our native vs cross-platform decision guide.

What a PWA is

A progressive web app is a website with three additions: a manifest file that tells the device its name, icon and how to open it; a service worker, which is a script that can cache files and respond when there is no network; and delivery over HTTPS. With those in place a browser can install the site to the home screen, open it without browser controls, and keep it working offline to whatever extent you have built for.

There is no store review, no store commission and nothing to download beyond the page itself. Updates reach every user the next time they open the app.

What a PWA can do today

CapabilityAndroid (Chrome and similar)iPhone and iPad (Safari)
Install to home screenYes, and the browser can show an install prompt that your interface can triggerYes, but manually through Share, then Add to Home Screen. No automatic prompt, so you have to explain it
Full-screen, app-like windowYesYes, once installed
Offline useYes, through a service worker and local storageYes, through the same mechanism
Push notificationsYesYes since iOS 16.4, only for web apps added to the Home Screen and only after a permission request triggered by the user
Camera and photo upload, geolocation while open, share sheet, clipboardYesYes, for the common cases
Payments for physical goods and servicesYes, through any web payment providerYes
Background sync, periodic background tasksPartly, in Chromium-based browsersVery limited
Bluetooth, NFC, USBPartly, through web APIs in Chromium-based browsersNot available in Safari
Listing in the storePossible on Google Play by packaging the PWA as a Trusted Web ActivityNot as a PWA; requires an app package

Browser support moves, in both directions. Treat the table as a starting point and test the specific feature you depend on, on current OS versions, before committing to a plan that relies on it.

What a PWA cannot do, or does poorly

  • Be found in the App Store. For consumer products, many people look for an app by searching the store. A PWA is invisible there on iOS, and on Android only appears if you package and submit it.
  • Use store billing. A PWA cannot sell through Apple or Google in-app purchase. That is an advantage if you would rather take payment on the web and keep the commission, and a drawback if you want the one-tap purchase that store billing gives.
  • Run reliably in the background. Continuous location tracking, long uploads after the app is closed, scheduled local alarms and similar behaviour are either unavailable or restricted.
  • Reach deep into the device. Widgets, watch apps, health data, contacts and calendar access, advanced camera control, and on iOS Bluetooth and NFC, are outside what browsers offer.
  • Guarantee storage. Browsers can clear a site's stored data when the device is short of space or the app has gone unused for a long time. Treat on-device data as a cache of something held on a server, not as the only copy.
  • Install easily on iPhone. The manual steps cost you a share of users, and with them the ability to send those users notifications.
  • Carry paid install campaigns. Mobile ad networks and attribution tools are built around store installs.

What a store app gives you

  • Presence and search visibility in the App Store and Google Play, with ratings and reviews that act as social proof.
  • Push notifications that work the same way for every user after one permission dialog.
  • In-app purchases and subscriptions with the payment method the user already has on file. The rules and commission are explained in our guide to app monetization models.
  • Full access to device features, background work within each platform's rules, and local notifications.
  • Durable on-device storage.

The price is store review and policy compliance, release work for every update, annual OS changes to keep up with, and commission on digital sales. Our Google Play release checklist shows what the Android side of that involves.

The hybrid route: web code inside a store app

You do not have to choose between web technology and the stores. Capacitor packages a web application as a real iOS and Android app. The interface is still your HTML, CSS and JavaScript running in the system web view, while plugins give it native push and local notifications, in-app purchases, ads, the file system and other device features. The result is submitted to the stores like any other app.

Both of BBR's published Android apps are built this way. Grow.io is an HTML5 canvas game with AdMob ads and Google Play Billing purchases. Live Gold & Silver Prices is a data app whose price alarms are delivered as local notifications, which is exactly the kind of feature a PWA cannot provide dependably. In both cases the same code runs in a desktop browser during development.

The route has limits too. Interfaces that depend on very long, fast lists or intricate gestures take care to get right in a web view. Apple's review guidelines reject apps that are no more than a website in a wrapper, so the app has to offer app-like functionality. And once you are in the stores, store policies apply to you, including the billing rules for digital goods.

A sensible sequence for many products: responsive web app first, PWA features where they are cheap, Capacitor when you need the stores, and a native or React Native client only if the interface outgrows the web view.

Decision table

Your situationLikely best route
B2B tool used at a desk and occasionally on a phoneResponsive web app; PWA features optional
Internal or field tool for a known group of staff, mostly AndroidPWA. You control installation and can train users
Content, booking or ordering product reached mainly through search, links or QR codesPWA first; store app when repeat use justifies it
Consumer product meant for daily use, relying on notifications to bring people backStore app
Revenue from subscriptions or digital purchases made on the phoneStore app, possibly alongside web checkout where rules allow
Existing web app, customers asking for “the app”Capacitor wrapper around the existing front end
Bluetooth devices, background location, widgets, health dataStore app, cross-platform or native depending on depth
Camera or audio processing in real time, AR, demanding 3DNative store app
Testing demand on a small budgetWeb or PWA. Spend the difference on reaching users

If two rows apply and disagree, let the one about revenue or retention win. A cheaper build that cannot bring users back or take their money is not cheaper.

Cost and time implications

Assume a responsive web app already exists and its mobile layout is good. Using the effort × rate method from our app budgeting guide, where a person-week costs $2,000 at $50 an hour and $6,000 at $150 an hour:

RouteAdded effortAt $50 / hourAt $150 / hourRelease process
Add PWA features: manifest, service worker, offline caching, install guidance, web push1–3 person-weeks$2,000–$6,000$6,000–$18,000Deploy the website
Capacitor apps for both stores: native push, store assets, device testing, submission3–6 person-weeks$6,000–$12,000$18,000–$36,000Store review per release
New cross-platform client (React Native) for an app whose client side is about 12 person-weeks13–15 person-weeks$26,000–$30,000$78,000–$90,000Store review per release

These are planning estimates. Backend, admin panel and design are shared across all three rows and excluded. If no web app exists yet, the first row becomes the cost of building that web app, and the gap between routes narrows: the expensive part of any product is the product, not its packaging.

Two recurring differences matter more than the build. A PWA has no store maintenance: no yearly target API updates, no policy forms, no review delays. A store app has all of those, and in exchange gets the distribution and billing that a PWA lacks.

A short procedure

  1. List what the product needs from the device. If anything on the list is in the “cannot do” section, you need a store app.
  2. Ask how users will find you. Store search and paid installs point to a store app. Links, search engines, QR codes and sales conversations point to the web.
  3. Ask how you will charge. Digital goods bought on the phone point to store billing. Invoices, web subscriptions and physical services work anywhere.
  4. Estimate how often people will open it. Weekly or less, a PWA is rarely the bottleneck. Daily, invest in the store app.
  5. If the answer is “both”, build the web app first in a way that can be wrapped later: responsive layouts, touch-friendly controls, no dependence on browser-only features.

BBR builds web products and store apps from the same skill set, so we have no stake in which you choose. The web application development and mobile app development pages describe how we approach each.

Questions

Frequently asked
questions.

Do PWAs work on iPhone?

Yes, with conditions. A web app added to the Home Screen from Safari opens full screen, can work offline and, since iOS 16.4, can send push notifications once the user has installed it and granted permission. There is no automatic install prompt on iOS, so users have to be shown how to add it, and several device APIs available in Chrome on Android are not available in Safari. Test on current iOS versions, because support has changed over time.

Can a PWA send push notifications?

On Android, yes, through the browser's standard web push support. On iOS and iPadOS, yes since version 16.4, but only for a web app the user has added to the Home Screen. A site open in an ordinary Safari tab cannot send push on iPhone. In practice that extra installation step means fewer iOS users end up reachable than with a store app.

Can I publish a PWA in the app stores?

Google Play accepts a PWA packaged as a Trusted Web Activity, which displays your site full screen using Chrome, and the Microsoft Store accepts PWAs as well. Apple's App Store does not list PWAs as such. To be on the App Store you need a real app package, for example your web code wrapped with Capacitor, and it has to offer more than a repackaged website to pass review.

Is a PWA cheaper than a native app?

Usually much cheaper when you already have a responsive web app, because adding installability, offline caching and web push is a matter of one to three person-weeks. If you have nothing yet, the saving is smaller: you still design and build the whole product, and you save mainly the store release work and the second or third platform.

Can I start with a PWA and move to a store app later?

Yes, and the path is gentle. The same web code can be wrapped with Capacitor to produce iOS and Android store apps with native push, in-app purchases and other plugins. If you later need a fully native or React Native interface, the backend, design and product knowledge carry over, and only the client is rebuilt.

Your next move

Web app, store app or both?
Describe how people will use it.

Tell us who the users are, how often they will open the product and what it needs from the device. We will say which route we would take and why.

Ask about your app