Decision Ladder

Use this when deciding between static web, PWA, native mobile, desktop, or store wrappers.

First true conditionPick
It is docs, reports, or a mostly static public surfaceStatic Astro or static web
It is a web workflow app that benefits from install/offlinePWA
It needs Android-only APIs or deep background workAndroid Kotlin Compose
It needs iOS and Android with native APIs at launchExpo or React Native
It needs one rendered UI across mobile/desktop/webFlutter
It is a local-first desktop toolTauri or Electron
It needs store discovery but the web app remains canonicalPWA wrapper, TWA, or Microsoft Store package
It depends on policy-sensitive native monetizationNative-first store app

PWA Default

Use PWA when the browser product is already valid and install/offline makes it more convenient. Do not use PWA to dodge native requirements.

Follow-Up Topics