Progressive web applications (PWA)

If you’re not accustomed to Progressive Web Apps the fundamental idea is to use browser technologies to build a web application that mainly works offline and has the look and feel of a native application. In this tutorial, we’ll show you how to use a manifest and service workers to create just about the easiest app possible, one that works even without an internet connection, and can be added to your home screen.

Progressive web applications are a type of web apps that combines the new technologies with established best practices for creating common web Technologies subsuming HTML, CSS & JavaScript. This blog provides you the complete introduction to Progressive Web Apps (PWAs), explaining what they are, and the advantages they bring over regular web apps. Let’s take an overview of what is a progressive web application, why we need PWAs and what are their features.

What the heck is Progressive Web App?

While browsing something on the Internet, have you ever noticed an “Add To Home Screen” banner, as shown in the below images. Have a look:

Note: Image & Gif taken from Google

When you click the button, the “application” installs itself in the backdrop. When you open this application that now sits in your app drawer, you can easily browse the likewise experience you were doing on your browser, but now right in your mobile phone.

You know what, installing the application was so easy. But that’s not even the good part. Because, when you open the app, you will be able to browse the content even when you do not have internet access. You have to offline access to that particular app. Now just think, how good is that?

Behind the process of combining the multiple applications in a front home screen is PWA that combines new technologies with established best practices for creating reliable, accessible, and engaging experiences. They give users a native-like experience with a user-friendly opt-in installation flow.

Progressive Web App isn’t a different frame or technology. Rather, it is a collection of best practices to make a web application function more comparable to a desktop or mobile application. Here, the dream is to have an experience that the user is unable to tell the difference between a Progressive Web App and a native mobile app. Now that you understand a little more regarding the progressive web apps, so let’s dig into the overview of why we need PWAs, understand how PWAs can help companies to tackle their development backlog and the resources to get started such applications.

Why do we need a progressive web app?

Progressive web apps help to solve difficulties like internet speed, slow website load, user engagement, and high friction. So to overcome these intricacies, there are reasons for using a progressive web app, but these are some of the topmost inclinations as it provides the following:

  • Fast – PWAs provide an experience that is quite fast. In this, from the moment the user download and to the user interacted with it works with impeccable speed.
  • Integrated user experience– With the Progressive Web Apps, the experience is integrated and seamless. This is due to the fact that they sit in the user’s home screen, send push notifications and have access to the device’s functionalities like native apps.
  • Engaging– Progressive web app launched from home screen and can easily receive the push notifications.
  • Reliable Experience–  In this, with the help of service workers, can paint a picture on a users’ screen without even the network.

Steps to build a progressive web app

  1. Server over HTTPS- You know with the constant support of progressive web apps, HTTPS is quite important especially for using service workers and allowing home screen installation. You can easily purchase an SSL certificate from your own domain registrar at little expense and then configure it through your hosting service.
  2. Create an app shell- Now have you ever wondered about your own app shell? Your app shell is the foremost thing that loads without any buffering and the foremost thing that the user sees in actual. All whilst creating a shell, it should be exist entirely in your index HTML document only along with an inline CSS, to ensure it appears as steady as possible and that the user isn’t initiating at a blank or white screen for longer than the requirement. The example we are going to provide you in the below section is mainly taken from a React.js application. In that instance, the user is presented with an outline of such a particular app and loading indicator in the index Html. Moreover, if the javascript loads once and boots up, the app is rendered within the shell.
  3. Service Workers- In the progressive web app, service workers are event-driven workers, which run in the background of an application. It operates as a proxy within the network and the application. They are capable of prevent network requests and cache information in the background. It also can be used to load data for offline work only.
  4. Manifest File- Having a manifest is mainly required by chrome browser to show the “Add to Home Screen” prompt. The web app manifest is a simple JSON file that mainly tells the browser about your own web application and tells how it should behave when “Installed” on the users’ mobile device or desktop system.
  5. Icons- You know what is the major role of icons in building Progressive Web Apps, basically, they simply control your application and provided in different sizes for different types of devices.
  6. Configure Install Prompt- Many of you might have noticed that whilst visiting a PWA with a service worker and then manifest, chrome browser will automatically prompt them to install it and to “Add to Home Screen“.
  7. Analyze your apps’ performance- Performance performs a major role and it is considered as the soul of PWAs. Your app should be fast for the users on all of the network conditions.
  8. Now take a look over the major difference between the Web App and a native mobile app in the below section.

A Comparison: Web apps & Native apps

Native App

A native app is designed to run on a specific mobile operating system. A native mobile app is one that is directly installed on the smartphone and can work, in most cases, without internet connectivity depending on the nature of the app. The native apps can work much faster by harnessing the power of the processor. Native apps get the approval of the app store they are intended for, which means in most of the scenarios the user can be assured for the interaction, and the native app responds the way its user expects.

Responsive Web App

A responsive web can deliver similar functionality to a particular app, and with a little creativity, the difference can be minimized. The web app works via a web browser on the smartphone but requires either a cell signal or wi-fi to function. They are much easier for users to discover since their pages can be simply displayed in the search results and can be listed in common search engines such as Google or Bing. The web app has the fortune of being used on various devices with the only requirement being a web browser and an internet connection.

Best examples of Progressive Web App in 2019


Starbucks launched its PWA in the year of 2017 only to provide fast, responsive performance for their worthy customers. Their PWA requires only 233kb of data storage and for an iOS mobile app needs 148mb.

This app is one among the top and trending apps that allows the users to save images. With progressive web apps, Pinterest has raised its conversion rates. Building a PWA has benefited by the way of the time spent by the users within the app has increased by 40%.  

Tinder has recently launched its progressive web app- Tinder Online. It was with an intention to move forward with the latest market trends that the team ended up building a tinder PWA.

Signing Off

Now that we have a rough understanding of what PWA is, What is the major role of Progressive Web Apps or how to create an app with PWA, further we can move onto something more technical. It’s time to get a small project up and running. Till then enjoy learning and try something new.