Skip to content

Web App vs Native App vs PWA: Which Should You Choose?

Web app vs native app vs PWA: when a web app is enough, when a PWA fits, and when a native app is worth the cost. A practical guide for EU businesses.

By

Freelance full-stack developer

Published
Reading time
11 min
In this post9

For most new business software, the web app vs native app vs PWA question has the same answer: start with a web app, add PWA features once people use it on their phones, and build a native app only when you can name the feature or channel that requires it. That reason is usually deep hardware access, working offline for long stretches, or customers who genuinely find you through the App Store and Google Play.

I build web apps and backends for a living, so weigh my bias accordingly. I've tried to be just as specific about the cases where native is the right call.

The short answer

Web app vs PWA vs native app at a glance
Web appPWANative app
What it isSoftware that runs in the browser, opened from a linkA web app users can install on their home screenSeparate iOS and Android apps from the App Store and Google Play
CodebasesOneOne, shared with the web appTwo, or one with React Native or Flutter
Works on desktopYesYesPhones and tablets only, by default
Shipping updatesInstant for everyoneInstant for everyoneThrough store review, then users must update
Push notificationsLimited, not on iPhoneYes, on iPhone only once installedYes
Offline useNoPartialFull, if built for it
Bluetooth, NFC, background locationLimited, not on iPhoneLimited, not on iPhoneFull access
App store listingNoOnly when wrappedYes
Store cut of in-app digital salesNoneNoneTypically 15-30%
Cost to build and maintainLowestSlightly above a web appHighest

My rule of thumb: start with a web app. Add PWA features when people open it on their phones several times a week. Go native when you can point to a specific feature or sales channel the web can't deliver. This decision belongs early in a project, and my overview of how a software project runs from idea to launch shows where it fits.

What each option actually is

The terms get mixed up a lot, so here's how I use them.

A web app is software that runs in the browser. People open a link, log in and get something done: book a slot, approve an invoice, update an order. Customer portals, booking systems, SaaS dashboards and internal tools are almost always web apps. Unlike a marketing website, the point is working with data, not just reading pages.

A progressive web app (PWA) is a web app with two additions. A manifest file gives it a name and an icon, and a service worker (a small script the browser runs in the background) handles caching and push notifications. Together they let users install the app on their home screen, open it without the browser bar, use parts of it offline and receive notifications. Same code, same URL.

A native app is built specifically for iOS and Android, either in Apple's and Google's own languages (Swift and Kotlin) or with a cross-platform framework like React Native or Flutter. It's distributed through the app stores, reviewed before every release and has full access to the phone.

Why I usually start clients on a web app

The first version of any product is mostly a learning exercise. You find out what users really need, and you learn fastest with one codebase you can change the same afternoon. A bug fix in a web app reaches every user within minutes. In a native app, the fix first goes through Apple's review, which Apple says takes under 24 hours for 90% of submissions, and then waits for users to update. Some never do.

Desktop matters more than people expect. In B2B software, many users sit at a computer most of the day. A native-only product shuts them out, and most teams end up building a web admin panel anyway. A web app covers desktop, tablet and phone from day one.

There's also no gatekeeper. No store has to approve your changes, nobody can reject your next release, and nobody takes a percentage of what you sell.

And you're not closing the door on native. If the web app is built on an API, a future mobile app can reuse the business logic, data and login, so only the interface needs rebuilding. If that's new territory, here's what an API is and why your system needs one.

Which framework the web app itself should use is a separate decision. I compare two common options in Laravel vs Next.js and explain elsewhere why Laravel is my default for web apps.

When a PWA is enough

A PWA makes sense once people use your web app on their phones several times a week. Think field staff checking job lists, clinic staff looking up schedules, or customers tracking an order. A home screen icon and a push reminder make a real difference here, and none of it requires a separate app.

The work is modest compared to native: a manifest and icons, a service worker that caches key pages for offline use, and push setup. It takes longer if users must create data offline and sync it later, because the app then has to handle two people editing the same record.

Most of the friction is on the iPhone:

  • Web push only works for apps installed on the home screen, which Apple has supported since iOS 16.4.
  • There's no install prompt like on Android. Users have to open the Share menu, usually in Safari, and tap "Add to Home Screen", and many don't know the option exists.
  • Bluetooth, NFC and background tasks remain limited or missing in Safari.

If your users are in the EU, there's a platform risk worth knowing about. In February 2024, Apple removed home screen web apps for EU users in an iOS 17.4 beta, citing the Digital Markets Act, then reversed the decision after pushback from developers and the European Commission. PWAs work in the EU today, but the episode shows how much they depend on Apple's goodwill.

When a native app is genuinely worth it

I'd recommend native in four situations:

  1. The app needs deep hardware access: talking to Bluetooth devices, reading NFC tags, tracking location while the phone sits in a pocket, or reading health data.
  2. Users work offline for long periods. Technicians in basements, on ships or in rural areas need a full day of work without signal and a reliable sync afterwards. A PWA can handle some of this, but native is more predictable.
  3. The app stores are your sales channel. If you sell to consumers who search the App Store and Google Play, the app is part of the product.
  4. The app pushes the phone hard: games, AR, heavy photo or video processing.

The bill grows to match. Two apps mean two platforms to test, two release pipelines and a yearly round of updates when Apple and Google ship new OS versions. You still need the backend on top. If you sell digital goods or subscriptions inside the app, the stores take a cut too. Under Apple's EU terms from October 1, 2026, that's 26%, or 15% for small developers. Physical goods and services delivered outside the app are generally exempt. For a realistic budget in euros, see my breakdown of what app development costs.

To be clear, native mobile development isn't my specialty. If you need a native app, hire someone with exactly that experience. The backend, API and admin side behind the app can still be built as a web app, and that's where I can help.

When each option is the wrong choice

A plain web app falls short when users need instant alerts on their phones, such as a new job assigned to them. That calls for push, so at least a PWA. It also fails the moment the connection drops, so it's the wrong fit for anything that must work offline.

A PWA is the wrong bet when most of your users are on iPhones and the whole product depends on push, because the manual install step loses people. It's also out if you need Bluetooth, NFC or background location, or if customers need to find you by searching an app store.

A native app is the wrong starting point when the idea hasn't been tested yet. Building two apps to find out whether anyone wants them is the most expensive way to learn. It's also a poor fit when users mostly sit at a desk, or when the budget covers the build but not the upkeep. An app nobody updates will sooner or later break on new iOS and Android releases.

The middle ground: cross-platform and wrapped web apps

There are two options between a pure web app and two fully native apps.

Cross-platform frameworks like React Native and Flutter produce iOS and Android apps from a single codebase. That saves a lot compared to two separate apps, and for most business software the result is close to native. It's still an app, though: it lives in the stores, goes through review and needs maintaining alongside your web app.

The other route is wrapping your web app in a thin native shell with a tool like Capacitor. That gets you into the app stores and gives you access to a few native features, such as the camera and push, while most of the code stays shared with the web app. The catch is Apple's review. The App Store Review Guidelines say an app should be more than a repackaged website, so a bare wrapper with no real app features risks rejection.

I see the wrapper as a good choice when your web app already works well on phones and you need an app store presence plus a couple of native features.

How to decide for your project

  1. Write down who your users are and where they'll use the product: at a desk, on the move, or on site without signal.
  2. List the features that need phone hardware or long offline sessions. If the list is empty, start with a web app.
  3. Decide whether the app stores are a real sales channel for you or just somewhere a few customers expect to see you.
  4. Build version one as a web app on an API and plan the PWA features from the start. Revisit native once you have data on how people actually use it.

Put the answers into a software requirements specification so any developer you talk to can quote accurately. My page on web apps and platforms explains how I build this kind of product, from the first scoping call to running it in production.

Frequently asked questions

Is a PWA cheaper than a native app?

Almost always, both to build and to run. A PWA shares its codebase with your web app, so you skip separate iOS and Android codebases, store review cycles and developer accounts. There's also no store commission on payments, because users pay you directly in the browser. The trade-off is weaker hardware access and a clunkier install on iPhones.

Can I publish a PWA on Google Play?

Yes. Android lets you package a PWA as a Play Store app using what Google calls a Trusted Web Activity, which opens your web app inside a thin Android shell. Users install it like any other app, and you keep shipping updates through the web. Apple has no equivalent, and its review rules are stricter about apps that mostly display a website.

Should I choose React Native or Flutter?

Both handle most business apps well, so the choice depends mainly on who will build and maintain it. React Native uses JavaScript and React, which many web developers already know, and can share some logic with a React web app. Flutter uses the Dart language and its own UI system. Go with whatever your developer has solid production experience in.

Does a native app need more maintenance than a web app?

Usually, yes. Apple and Google release new versions of iOS and Android every year and regularly raise the minimum versions apps must be built against. That means a native app needs updating and resubmitting even when you haven't changed anything yourself. With a web app, the browsers keep up and you maintain a single codebase.