Skip to main content
cascadia.computer

Progressive Web Apps - An Intro + Answering some common questions

Hello! Today I want to dive a little deeper and answer some common questions about Progressive Web Applications (PWAs) that I get but don't see answers often to "in the wild." Let's start with a small intro, and then we will dive into the questions! We will then wrap up with an overview of some advantages PWAs have over platform-specific (native) apps.

What is a PWA? #

Progressive Web Applications (PWAs), at their most basic, are web apps that use modern web capabilities; at least a Web App Manifest and Service Worker, to enable advanced, native app-like experiences on a user's device. PWAs can be installed through the browser, which will give the user a special install prompt if the browser detects a Web App Manifest and Service Worker, and installed through app stores, such as the Microsoft Store, Google Play, and the Meta app store.

Beyond just a Web App Manifest and Service Worker, PWAs also have access to many advanced, low-level capabilities that web apps historically have not had access to. This includes things such as:

And much more!

Many of these APIs have historically required you to use Electron, Cordova, or some other WebView-based solution, but you can now achieve the same functionality using JavaScript running in your browser.

Common Questions / Concerns #

While the above description gives a good overview of PWAs, let's dive into some common questions I get about them, and hopefully, my answers provide clarity.

This is false and based on the fact that the web has a low entry point for developers, meaning there are many developers building their first app, etc., which yes, are not going to be the best apps in the world. Native apps can also be very slow, buggy, etc. In fact, there are whole operating systems where the main app platform is Web Tech, and users/the tech media praise that operating system for being smooth and lightweight. Finally, I urge developers to use the average device their users have (for laptops, normally around a 400-dollar laptop if you look at the most sold laptops on Amazon) and try apps built with different tech.

Yes! Many of the APIs can be used in a normal web app running in a browser tab. However, others, like shortcuts, for example, require an installed PWA. A simple way to look at it is “All web APIs are PWA APIs, but not all PWA APIs are web APIs.” However, all the capabilities are still just JavaScript running in the browser engine, the only difference is whether your app is running as an installed app (the user has installed it from the browser or app stores) or in a browser tab.

Yes! PWAs are basically advanced web apps, so they work perfectly fine in a normal browser tab, just like any other web app or website. However, they can also run as installed apps! This means that users can get into your experience in whichever way they choose, whether through app stores or browser, with no install needed to get started through the browser!

Yes! You can think of installed PWAs as running in a “headless” browser tab. It looks like a WebView app, but it's running in the browser.

Yes, but with some caveats that you may be used to from feature checking for APIs such as Promises in the past. So, all PWAs are just HTML, CSS, and JavaScript, at least initially served from a web server, just like anything on the web. Because of this, they will work, at least at some basic level, on any browser! However, this does not mean that, if your app relies on one of the advanced APIs I mentioned above, it will work in any browser. While many of the above APIs are supported cross-browser, some are Chromium-only, and some are Chromium and Firefox only. Safari has historically had very limited support for anything beyond the basics in a PWA; this has been changing fast over the last 2-3 years because of social pressure, political pressure, and market pressures.

No, you cannot. This would break a few of the key advantages PWAs have, including the fact that this would prevent the app from running in the browser, plus it would mean that your app is calling code that is running outside of the browser's sandbox, potentially opening security holes.

Any OS that can run a modern browser, especially chromium-based browsers. Windows, Android, macOS, ChromeOS, and Linux all have great support for PWAs. iOS and iPadOS have been held back for years on PWAs, but this is rapidly improving over the last two years.

While it would depend on the MDM provider you are using, for Intune at least, the answer is yes. PWAs can be installed and managed through Intune just like any other application. More Info

The answer is a combination of yes and no.

No, PWAs cannot explicitly use the Windows Copilot Library; however, studio effects are automatically supported in PWAs, Edge has an OCR capable API, and Phi Mini, which Microsoft offers specific web optimized versions for, can be run using WebNN.

On the Windows Copilot Runtime, WebNN, which is considered part of the Runtime, is what PWAs and other web-based apps would use. This uses DML under the hood and supports the same operators, models, hardware, etc.

So in summary, PWAs can access everything except recall in the Windows Copilot Library even though the library does not have explicit support for Web Apps, and yes, PWAs can use the Windows Copilot Runtime by using WebNN.

More Info

Hopefully, this answers some of the questions you had about Progressive Web Apps!

Advantages of PWAs over native apps #

PWAs are not the right stack for every app type out there, and there are of course places where platform-specific (native) apps will have their place, but PWAs can work for a large majority of apps AND provide some key advantages over native apps:

Disadvantages of PWAs over native apps #

Get started building your new PWA today at Progressive Web App Intro Workshop.