HACKER Q&A
📣 open-source-ux

Thoughts on PWAs (Progressive Web Apps)?


PWAs (Progressive Web Apps) promise a single codebase for building cross-platform mobile and desktop apps.

Does the promise live up to the reality?

Or are PWAs an oversold, underpowered and disappointing technology?

If you're not familiar with PWAs, here are some links about PWAs from Microsoft and Google (could not find anything from Apple):

Microsoft: Overview of Progressive Web Apps (PWAs) https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/

Google: Progressive Web Apps https://web.dev/progressive-web-apps/


  👤 armchairhacker Accepted Answer ✓
I like PWAs only because I like write once = use anywhere. Many applications don’t have any reason not to target macOS, Windows, ChromeOS, Android, iOS etc., and more platforms = larger audience. Yet there’s not really another tool chain that works on all PCs and mobile devices.

I get if you don’t like PWAs, but there needs to be an alternative to write 1 app for all devices.

Unfortunately, the biggest issue with PWAs is that they’re not really supported (severely limited) in iOS, since Apple wants to keep its walled garden. Another big issue is that PWAs are webpages, so they’re less performant and capable than other platforms like JVM and native. Hopefully APIs like WebAssembly, Web File System, WebRTC, etc. will improve this, but still, you can’t write apps that need max performance or specific device features as PWAs.


👤 muzani
IMO it's lot easier to just write a native app. Or if you're going to learn a new language, just learn Flutter.

"Write once" may actually be more work. You're supporting multiple operating systems, multiple devices/manufacturers on Android. So you're maintaining the same code but it's being polluted by code on different operating systems. At best, you're writing for Chrome and Safari, where the behaviour is different, and often needs a lot of redundant lines of CSS.

A HTML5 camera may perform differently on different devices, on certain edge cases. Storage definitely acts differently on say, Samsung. If you want an Instagram Lite style gallery, that could be a lot of work to support and maintain.

Native mobile gives you more power over layouts. You have fine control over dialog boxes, pop ups, scoping across different pages and dialogs are handled better, tablet support is built in. None of that SPA stuff where something several pages in affects a previous page because of ID conflicts.

Something with the complexity of a card may take a week to get right on CSS, a couple days on native mobile. There's a reason PWAs feel so janky.

And then there's lifecycles - what happens when someone changes apps, your device runs out of memory, or a phone call interrupts. People say native is hard, but most of the hard architecture work is lifecycle management. With a PWA, you basically get none. That means someone might be deep into your app, switch screens, then lose all progress.


👤 trinovantes
YouTube Music is a PWA and I absolutely hate it

- Requires restart whenever chrome browser updates

- Chrome browser userscripts/extensions sometimes leak over

- Desktop media keys constantly confuse it with web browser videos

- It can't be minimized to task bar

- In order to play my personal music, I have to upload all of it to Google cloud


👤 technobabbler
They're not fully supported by Apple, and is really just a way of bookmarking a webpage and caching it. They don't use native APIs or GUIs and IMHO are very clunky for users because they pretend to be a app but in the end just look and feel like a chromeless browser, without a lot of the usual UI shortcuts a real native app would have (context menus, touch to do whatever, etc.)

I strongly dislike them, personally. If you really don't want to learn native languages, maybe something like React Native would be a better balance. PWAs are just janky.