PWA, Capacitor or Native? A Concept Map Before You Choose (No Code)
Three roads lead to the palm of whoever will use your tool. One runs under open sky, one through a guarded pass, one climbs the mountain. The merchants will tell you theirs is the only passable one. Merchants lie for a living: the right road depends on the load you carry.
The three roads, one sentence each
Names first, no acronyms taken for granted. A PWA (Progressive Web App)[1] is a website that behaves like an app: you "install" it from the browser, it can work offline, and it doesn't go through any store. Capacitor[2] takes that same web app and wraps it inside a real app, installable from the store, with a bridge to the phone's native features. Native means writing the app in the platform's own language — on Android, today, Kotlin — talking directly to the operating system, with no layers in between.
What each choice really means
| Criterion | PWA | Capacitor | Native (Kotlin) |
|---|---|---|---|
| Distribution | A URL. No store, no waiting, instant updates | Store (Play/App Store) and, if you want, the web too | Store, or an APK distributed directly |
| Hardware access | Limited to what the browser exposes (and on iOS the fence is tighter) | Broad, through plugins; exotic cases require native code | Total: everything the system offers |
| Skills required | Web only: HTML/CSS/JS | Web + the basics of the Android/iOS ecosystem for builds and stores | Kotlin, Android Studio, lifecycle, an entire ecosystem |
| Perceived performance | Excellent for content and forms; the limit is complex UI | Like a well-made web app: enough for most cases | The benchmark: animations, endless lists, heavy graphics |
| Maintenance cost (solo) | The lowest: one codebase, no store obligations | Medium: one codebase, but two build chains and the stores' rules | The highest: an ecosystem to keep up with, yearly API requirements |
The questions to ask yourself, in order
- 1. DO YOU NEED THE HARDWARE? — Bluetooth, sensors, reliable background services? If so, the PWA drops off the map almost immediately: Capacitor and native remain
- 2. DO YOU NEED THE STORE? — the store means visibility and trust, but also a fence (see the previous transmission in this zone). If your audience can arrive from a link, the PWA comes roaring back into play
- 3. WHO MAINTAINS IT, AND FOR HOW LONG? — for anyone working alone this is the decisive question: every extra technology layer is maintenance debt you sign for today and pay every year
- 4. HOW MUCH OF AN "APP" DOES IT NEED TO BE? — if the value lies in the data and the features, users forgive a web UI. If the value is the experience of using it, native pays for itself
My personal compass, stated openly: start from the lowest rung that meets the requirements. Prototype as a web app; if you need the store or a native API, Capacitor; native when the project justifies it through performance or depth of integration — or when the goal is to learn the territory, which is as legitimate a requirement as any other.
> content only + light offline → PWA
> store + standard hardware → CAPACITOR
> performance / deep integration → NATIVE
> in doubt → THE LOWEST RUNG THAT'S ENOUGH
Frequently asked questions
What's the difference between a PWA, Capacitor and a native app?
A PWA is an installable website that can work offline without going through a store. Capacitor wraps the same web codebase in an installable app with access to native features through plugins. Native (on Android, Kotlin) talks directly to the operating system, with no layers in between.
Which one should I pick for a first app?
The lowest rung that meets the requirements: prototype as a web app, Capacitor if you need the store or standard hardware, native when you need performance or deep integration.
When is it better to skip the store and stay with a PWA?
When your audience can arrive from a direct link and you don't need advanced hardware access: that way you avoid all the friction described in the previous transmission about Google Play.
None of the three roads is the right one in absolute terms. But setting out without a map is the one guaranteed way to get them all wrong.
Notes
- PWA — Progressive Web App: a web application that uses a service worker (for offline), a manifest (for installation) and HTTPS. Support varies by platform: it's the technical point to check first, case by case. ↑ back to text
- Capacitor — Ionic's open source runtime: it wraps a web app in a native WebView and exposes system APIs (camera, filesystem, Bluetooth...) through plugins. Spiritual heir to Cordova/PhoneGap. ↑ back to text
SURVIVAL APPS