One of the most common questions I get from new clients is whether they need a mobile app or a web app. The honest answer is: usually not a native app, at least not first.

Start with what the product actually needs. If you need camera access, offline usage, push notifications, or device-level performance, a native mobile app is the right call. Games and anything hardware-heavy fall into this bucket.

If it’s mostly forms, dashboards, or content, build a web app. A responsive web app reaches every device from one codebase, updates instantly without an app-store review cycle, and is dramatically cheaper to build and maintain.

Distribution matters more than people expect. A web app is one link away from being used. A native app requires someone to find it, trust it enough to install it, and grant it permissions, real friction that kills a lot of otherwise good ideas before they get traction.

You can always go native later. Plenty of successful products validate the idea as a web app first, then build a native app once they have real usage data to justify the extra cost.

My rule of thumb: build the smallest thing that proves the idea works, then invest in a native app once you know people actually want it.

The real cost difference is bigger than people expect

A native app on iOS and Android usually means two separate codebases, two separate release cycles, and two app store review queues before a single bug fix reaches users. A web app ships the moment you push to production. For an early-stage product still finding its market, that speed difference compounds: every week saved on deployment is a week earlier you get real user feedback.

Consider the update problem specifically. App stores can take anywhere from a few hours to a few days to approve an update, and a rejected build means going back to the review queue. If your product needs to react quickly, a pricing change, a broken integration, a security fix, that lag is a real operational risk, not just an inconvenience.

Progressive Web Apps blur the line further. Modern browsers support installable, offline-capable web apps with push notifications through the same web codebase, covered well in web.dev’s PWA documentation. For a lot of products that think they need a native app, a well-built PWA closes most of the gap without the distribution friction.

The exception is discoverability through the app stores themselves. If a meaningful share of your expected users will find you by browsing the Play Store or App Store rather than a link, that’s a real point in favor of native, since a web app has no presence there at all.

Whichever direction fits, the decision should come from the product’s actual requirements, not from what feels more impressive to say out loud. If you’re unsure which bucket your idea falls into, that’s exactly the kind of conversation I have on every discovery call before quoting a project.

A real example of getting this decision right, and wrong

A founder came to me wanting a native app for a local services marketplace, because “apps feel more professional.” After walking through the actual requirements, no camera access, no offline need, no push notifications beyond what email could cover, we built a fast, responsive web app instead. It launched in six weeks instead of the four-plus months a native build with two app stores would have realistically taken, and it validated the business model with paying customers before a much larger investment was justified.

Contrast that with a fitness tracking product I built later, which genuinely needed background step counting, offline workout logging, and deep integration with device health sensors. That one was native from day one, because the web platform simply couldn’t deliver the core feature reliably. Same question, opposite answer, because the actual requirements were different.

The mistake to avoid is deciding based on how a choice feels rather than what the product needs. “Apps feel professional” and “a website feels lightweight” are both marketing instincts, not technical requirements. Write down what the product must be able to do first, camera, offline, push, background processing, and let that list make the decision instead of a gut feeling about perception.

Get that requirements list wrong in either direction and you either overspend building native for a product that didn’t need it, or underdeliver trying to force web technology to do something it fundamentally can’t.

How the decision changes once real users are involved

Everything above describes the decision before launch, but it’s worth revisiting after you have real usage data too. A web app that starts showing strong retention and usage patterns that look like people are trying to add it to their home screen, checking it multiple times a day, using it in contexts where a native app’s deeper OS integration would meaningfully improve the experience, is a legitimate signal to revisit the native question with actual evidence instead of a guess. That’s a completely different, far lower-risk conversation than deciding upfront based on assumptions about what users might want.

The framing I use with clients is simple: a web app is a hypothesis test, a native app is a scaling decision. You don’t need to be certain about scaling before you’ve confirmed the hypothesis is even true. Building the smaller, cheaper thing first isn’t a compromise on quality, it’s sequencing risk correctly, spending the larger investment only once you have real evidence it will pay off, rather than betting the full build cost on an assumption that hasn’t been tested with actual users yet.

Whichever path fits, write the requirements down before the conversation turns into opinions. A short list of what the product must do settles this decision faster than any amount of debate about which approach feels more serious.

I keep a one-page decision doc template for exactly this conversation now. Ten minutes filling it out with a client, before any design or development starts, has prevented more than one expensive mid-project pivot from web to native or back again.