Historically, the software was delivered as applications. You bought it on floppy disks, CDs, or memory sticks, installed it and used it. This cumbersome process meant that software was rarely upgraded. The cost of creating physical products and mailing them out was high, and when an error cropped up there was no easy fix. But the web changed things. Instead of ordering physical media, you simply downloaded and installed the software you needed.

As browsers and technology developed, even that process was simplified: instead of downloading and installing, you typed in a URL or clicked on a link. Finally, we had proper software-on-demand. The advent of smartphones pushed things forward again. The software-in-a-browser format wasn’t ideal for the form factor; typing URLs on a mobile device was tricky.

The interfaces we built with web technologies (HTML, CSS, and JavaScript) were often optimized for big screens and mouse interactions. But the main problem was that they required the user to be online – and mobile connectivity tended to be less reliable than a wired connection on a desktop or laptop.

Native apps on iOS and Android delivered what mobile websites couldn’t: the ability to work offline, and an experience optimized to the form factor of a smartphone. So, we started offering software and media through app stores.

But it has become clear that this is not a perfect solution either. Distributing software to end users via a store is convenient for developers and it feels more secure, as a curated store can filter malicious software. But it also means building several versions of native apps for different operating systems and form factors, which not everyone can afford.

Developers are reliant on stores to publish and distribute an app, and may need to share the profits with them. The store provider might impose a review period on new releases – and some users won’t be happy to repeatedly update big apps – so it’s harder to publish new Versions. Delivering our solutions in closed stores and in a native format also involves a lot of assumptions. App stores don’t always support legacy devices, so they rely on users to have a certain operating system or the newest version of a device.

Users need enough storage available on their device, and of course, native apps tend to involve a lot of data, so they require fast, unlimited connections to download and update. Users are expected to have a credit card to make purchases. But if we look to markets with the most new users we can see just how unrealistic even these basic assumptions are. It is therefore vital to find a way to marry the immediacy and low entry barrier of the web with the form-factor optimization and functionality of native apps.

Enter progressive web apps

Enter Progressive Web Apps. As the name suggests, PWAs are applications that use web technologies to give us the best of both the web and native environments. PWAs are put in the front in a progressive way, meaning one does not need to build these apps in multiple formats. One can deliver a basic solution to the website and add extra functionality as they keep going.

The method of progressive enhancement is used for delivering web content since it makes more sense. Instead of expecting users to have a certain browser or particular hardware, we aim to deliver something that works for everybody. More up-to-date systems may enable newer and more complex features, but the essential functions should just work without the user having to worry.

PWAs are delivered via a link in an email, a chat, search result, a beacon, a QR code, or from an ad. The PWA provides a suitable interface for the device and form factor, is immediately available, and the user can try before buying. Whilst a user interacts with the PWA, we can check the capabilities of their device and load more data in the background. We can also offer increased functionality further down the line – offline usage, notifications when new data is available, and various other conveniences.

Initially, PWA descriptions seemed complex and daunting

for developers. A PWA needed to be:

  • Progressive – containing extended functionality that becomes available on subsequent visits, pertaining to the capabilities of the consumption device.
  • Responsive – an interface that catered to the environment, offering smooth and immediate interaction.
  • Network independent – the PWA functions both offline and online as well as on flaky connections.
  • Native App-like – a PWA is expected to work like any other app. In complete fullscreen and in its own context, sans the need of operating browser.
  • Fresh – updates happen automatically with no long-winded installation process


PWAs have broad support across mobile (including iOS support soon), and they’re also beginning to be supported in desktop platforms like Chrome OS and Windows 10

Know more about PWA vs Native App

Microsoft recently announced its intent to make PWAs a first class citizen on Windows 10. This will make it possible for them to be installed directly from the Microsoft Store, be visible in the start menu and apps list alongside native apps, and also open in a separate window same as that of a normal Windows app.

On top of that, Google recently started enhancing the PWA experience in Chrome OS. As soon as a user visits a PWA on their Chromebook, users will be prompted to quick add the PWA to their device, just like on Android. Once added, that PWA will show up in the app drawer and open in a separate window. Get in touch with a progressive web app development company and create your businesses’ first PWA.