Skip to main content
Support

Browse by category

All categories
← All posts
Buyer's guide May 24, 2026 · 5 min read

PWA vs native app — when does the browser win?

A Progressive Web App is a web app that can be installed to the home screen, run offline, and feel like a native app. Sometimes that is enough. Sometimes a real native app is the right call. Here is the honest decision tree.

By Khine 1,023 words Extractable lead
PWA vs native app — when does the browser win? — hero illustration

Verdict

Short, bounded tasks (file processing, calculators, viewers, dev utilities) → PWA is enough, and often better. Install via URL, update silently, no app-store gate.

Long-running background work, deep OS integration, hardware, heavy memory, or app-store distribution requirement → native app. The browser can’t reach these.

Most “is it really an app?” tools — note-takers, calendars, calculators, tool sites like Loft — sit firmly in the PWA-is-enough category. The user experience is roughly indistinguishable from a native app for the user.

A decision tree with four questions: does it run in the background after you close it, does it need deep OS or hardware access, does it need more memory than one tab, and must it ship through an app store. Any yes points to a native app; all four no points to a PWA, where Loft lives.
The honest version in one picture: four gates, and any single "yes" points you at a native app. Clear all four — short bounded task, no background work, no special OS hooks, fits in a tab, no app-store requirement — and a PWA is genuinely enough. Loft's file tools land in the all-no corner.

Side-by-side capability table

CapabilityPWANative app
Installable to home screenyesyes
Runs offlineyes (service worker)yes
Updates automaticallyyes (silent on reload)usually requires user action / app store
Cross-platform from one codebaseyesusually no (one platform per build)
Available outside app storeyesusually no
Memory headroombounded by tab (per-tab memory cap — typically low hundreds of MB on modern iPhones)bounded by device RAM
Background processing after closenoyes
Push notifications on iOSlimitedyes
Deep OS integration (widgets, shortcuts)noyes
Hardware access (USB, scanners, low-latency audio)partialyes
App-store presencenoyes
Discoverabilitysearch enginesapp store search
Update lagseconds (page reload)hours to days (review queue)
File-system integrationpartial (File System Access API where supported)full

When PWA is the right call

  • Short, bounded workflows. Open → do task → close. The “no background processing” gap doesn’t bite.
  • Cross-platform parity matters. A single PWA covers Windows, Mac, Linux, ChromeOS, Android, iOS from one codebase.
  • Updates need to ship fast. PWA updates land in seconds. App store reviews can take days.
  • The audience isn’t app-store-driven. Users find you via search and direct URL, not app-store browse.
  • The app’s value doesn’t depend on platform-native integration. If you don’t need Touch Bar, Shortcuts, widgets, or system-wide search, PWA is fine.

When native is the right call

  • Background processing matters. Backup tools, sync clients, alarm clocks, anti-virus, anything that operates while you’re not looking. PWAs cannot.
  • Tight OS integration is a feature. Shortcuts.app on Mac, System Settings panes, widgets on iOS, share-sheet extensions — all native-only.
  • The app needs more memory than a browser tab. Professional video editing, big CAD models, scientific computing on real datasets.
  • Real-time hardware control. USB scanners, MIDI controllers, printer drivers, low-latency audio interfaces.
  • App-store distribution is the business. If your customers find you in the app store and pay through it, PWA isn’t a path.

Which should I pick when

I’m building a PDF tool / image tool / calculator / converter — PWA. Short bounded tasks. Loft is in this bucket.

I’m building a fitness tracker that runs in the background — native. PWA can’t keep recording when you switch apps.

I’m building a note-taking app — either, depending on whether sync and rich notifications are core. Notion’s PWA is good enough for most users; Apple Notes’ native integration is worth the platform lock-in for users who want it.

I’m building a video editor — native. The memory budget alone rules out PWA.

I’m building a developer utility (linter, formatter, validator) — PWA. Run once, copy result, leave.

I’m building something that needs to be in the App Store for distribution reasons (school IT requires it, employer-managed device) — native. The PWA install path doesn’t satisfy the IT policy even if it’s technically capable.

Loft’s choice and its costs

Loft is PWA, not native. The reasoning:

  • Our workloads are short, bounded, file-based.
  • One codebase, not three (web + iOS + Android).
  • Updates ship in minutes, not days.
  • We avoid app-store gatekeeping and platform fees.
  • Browser-side architecture is the moat; native would only add surface, not capability.

The honest tradeoffs we accept:

  • iOS PWA install discoverability is poor. Most users never realise they can install a website. We do what we can with an install prompt; the gap is on browser vendors, not us.
  • iOS Safari evicts caches aggressively. A PWA you haven’t opened in a while may need to re-fetch its shell.
  • Heavy workloads hit the tab memory cap. A 500-page scanned PDF can struggle on iPhone where Acrobat wouldn’t.

For occasional file work — what Loft actually gets used for — the tradeoff is fine. For a user who runs into the limit every day, a native app from a different vendor may genuinely be the better fit.

A subtlety I keep getting wrong

I sometimes describe PWAs as “just a website with an icon.” That’s not wrong, but it undersells the service-worker piece. A normal website without a service worker isn’t installable, doesn’t work offline, and doesn’t behave like an app. The service-worker layer is what does the heavy lifting. The icon is the user-visible part; the worker is the engine. Worth correcting the next time I write this kind of post.


The pillar at /docs/how-it-works/ covers PWA install in section 8. The MDN PWA overview is the canonical reference.

References

  1. Progressive Web Apps — MDN Web Docs — Mozilla (accessed 2026-05-27)