Comparison · Mobile

PWA vs native app: do you really need the app stores?

A progressive web app is a website that can be installed to the home screen, work offline and, on supported platforms, send push notifications. A native app is built for iOS and Android and distributed through the app stores, whether written in Swift and Kotlin or with a cross-platform framework. The gap between them has narrowed, but it has not closed.

The short answer

Start with a progressive web app when users mainly need forms, content, dashboards or ordering, and you want one codebase that works instantly from a link. Choose a native or cross-platform app when you need deep device features, reliable background work, or a presence in the App Store and Google Play. Many products begin as a PWA and add a store app once demand is proven.

PWA vs Native app at a glance

CriterionPWANative app
InstallationFrom the browser, no store neededThrough the App Store and Google Play
DistributionShared by link and found through searchStore listing and store search
UpdatesInstant on next loadStore review and user updates
Device accessCamera, location and more; limits vary by browserFull access to platform APIs
Push notificationsSupported; on iOS only once installed to home screenFully supported on both platforms
Background tasksLimited, especially on iOSBackground sync, location and audio supported
CodebaseOne web codebase for every deviceOne per platform, or one with React Native or Flutter
Best fitPortals, booking, ordering, internal toolsConsumer apps, hardware integration, heavy offline use

Choose PWA when

  • Users arrive from search, email or social links and should not have to install anything first
  • The app is mostly forms, content, dashboards or checkout
  • You want to validate the idea before committing to store releases
  • Staff use it internally and you want to avoid store distribution entirely
  • Updates need to reach every user immediately

Choose Native app when

  • You need Bluetooth, NFC, background location or other APIs browsers restrict
  • Being found in the App Store or Google Play matters to your growth
  • Reliable push notifications on iOS are central to the product
  • Users work offline for long periods with large amounts of data
  • You need in-app purchases or deep integration with widgets, health data or wearables

Where PWAs work well

For customer portals, booking systems, ordering flows and internal tools, a PWA built with Next.js or React often covers everything users need. It loads from a link, can be indexed by search engines, installs to the home screen and caches data for spotty connections. You maintain one codebase and ship updates without waiting for store review.

Where native still wins

Browser support for device features is uneven, and iOS Safari in particular limits background work and some hardware APIs. Web push on iPhone only works after the user adds the app to the home screen, which many never do. If the product depends on these features, or on being discovered in the app stores, a native or cross-platform app is the honest recommendation.

A staged approach

A practical path is to launch as a PWA with a shared API, measure how people use it, then add a React Native app that talks to the same backend. Little work is wasted because the API, business logic and much of the TypeScript code carry over.

Frequently asked questions

Can a PWA be listed in app stores?

Google Play accepts PWAs packaged as Trusted Web Activities. Apple's App Store generally expects an app with native functionality, so a thin website wrapper risks rejection.

Do PWAs work offline?

Yes, with a service worker that caches pages and data. How much works offline depends on how carefully caching and data syncing are designed.

Is a PWA cheaper than a native app?

Usually, because one web codebase serves every device and there is no store release process. The saving shrinks if you later need a native app anyway.

Still deciding?

Tell me about your product, users and constraints, and I will recommend the option that fits, even if it is not the one I use most.

Ask for a recommendation