# PWA vs native app: what to choose for your MVP

> PWA vs native app, or React Native and Flutter in between: what to choose for an MVP, where each option hits its ceiling and when to switch.

Published: 2025-03-17 · Source: https://subxcat.com/articles/pwa-vs-native-app · Author: SUBXCAT

PWA vs native app is a question that shows up as soon as a web MVP gets its first users on phones. A PWA (progressive web app) is a website that can be installed on the home screen and does a few things only apps used to do: work offline, send notifications, open without a browser bar. A native app is built for a specific platform and installed from a store.

There's a third option between them — cross-platform frameworks — and for an MVP it's often the sensible one. Let's go through all three.

## PWA vs native app vs cross-platform, in plain words

- **PWA.** Your existing web code plus a manifest and a service worker, a script that caches files and receives notifications. One codebase, no stores, no review; an update is a normal deploy.
- **React Native or Flutter.** One codebase that builds real iOS and Android apps. They ship through the stores and can reach almost everything the phone offers.
- **Native.** Swift for iOS and Kotlin for Android, two separate codebases. The most capability and polish, and roughly twice the work.

There are also wrappers like Capacitor: your site inside an app shell. That works if what's inside behaves like an app. If it's just your website, a store may reject it for exactly that.

## When a PWA is enough

A PWA fits when your product is mostly forms, lists and content, and people reach it through a link, an email or a laptop. Admin panels, B2B tools, dashboards, services people open once a week — a PWA gives you nearly everything there, and the stores add mostly paperwork.

The MVP upside is real: you already know how to deploy a website, a fix reaches everyone in a minute, and you can charge for digital goods through a regular payment provider.

## Where a PWA hits the ceiling

The limits are mostly on iPhone, and it's better to know them up front:

- web push on iOS works only for people who added the site to their home screen, which you have to explain manually;
- no App Store listing — people who only look for apps there won't find you;
- background work is limited: no background location, no long uploads after the app is closed;
- some hardware is unavailable or patchy — Bluetooth, NFC, certain sensors;
- for many people an "installed app" is something from the store, not an icon from the browser.

## When to pick React Native or Flutter

If the product lives on the phone — used daily, needs reliable notifications, camera, location, offline — a cross-platform framework is usually the best MVP choice. One team, one codebase, two stores.

If your web MVP is built in React, React Native (especially with Expo) will feel familiar: same language, similar components, some logic you can reuse. Flutter is its own world with the Dart language, but gives you a very predictable UI on both platforms. Pick what your team will actually maintain, not what won someone's comparison post.

## When you need native

Fully native development pays off when the product pushes the platform's limits: serious camera and video work, real-time audio, widgets and deep system integrations, heavy graphics, smoothness on weak devices. Most MVPs aren't there, and two codebases at the start mean paying twice for every hypothesis.

## When to switch

A good path for many products: web and PWA first, a store app once there's a signal. Signals look like this:

- users ask where the app is and can't find you in the store;
- retention suffers because people forget to come back, and push on iOS reaches only a handful of them;
- you need a feature the browser simply doesn't offer;
- competitors get a visible share of installs from store search.

Switching is cheaper if business logic lives on the server from day one, not in the client. Then a new app is a new interface to the same API, not a port of the whole product.

## In short

- A PWA is a website that installs to the home screen: one codebase, instant updates.
- Its main limits are on iPhone: notifications, background work, hardware, no store listing.
- React Native or Flutter is a sensible choice for an MVP that lives on the phone.
- Go native when the product pushes the platform's limits, not by default.
- Keeping logic on the server makes any later switch cheaper.

If you're not sure which option fits your product, SUBXCAT can help you decide before the code gets written twice.
