What the heck is a "Progressive Web App"? Seriously.
Tags: webdev
Published: 2017-11-06 15:41:37

---
title: "What the heck is a \"Progressive Web App\"? Seriously."
published: true
description: We've shipped a progressive web app but I'm still confused.
tags: webdev
cover_image: https://thepracticaldev.s3.amazonaws.com/i/zn0mlpl57mu75icays31.png
---

This morning I went to write an article outlining a few tips about implementing a progressive web app (PWA). But when I went to introduce the topic, I again encountered what was the hardest part about the whole topic in the first place: I have a really hard time describing _what_ a progressive web app _actually is_.

I'm not posing this question from a perspective of ignorance. We implemented a PWA for [dev.to](/), if you go to this site on Android Chrome, you should see the a prompt to install our app.

So what is a PWA? Here's what [Google's official introduction](https://developers.google.com/web/progressive-web-apps/?hl=en) says:

>Progressive Web Apps are user experiences that have the reach of the web, and are:
- Reliable - Load instantly and never show the downasaur, even in uncertain network conditions.
- Fast - Respond quickly to user interactions with silky smooth animations and no janky scrolling.
- Engaging - Feel like a natural app on the device, with an immersive user experience.

> This new level of quality allows Progressive Web Apps to earn a place on the user's home screen.

Those all seem like qualities we already had before embarking on any of this, so what's a progressive web app? Google's continued use of the term "quality" in describing things leaves me with a ton of confusion. It really seems like they want PWA to be a general term that doesn't imply any particular implementation, and have it be focused around the user experience, but all I see over the web is confusion as to what they mean by these things. My website is already "engaging" and "immersive", does that mean it's a PWA? They mention these "App Install Banners", which seem like the point, but if that's what makes it so, why do they bury that info? Is PWA an abstract pattern, or is it about the installing part, is it both?

Perhaps PWA is meant to be inclusive of a lot of technical approaches, so they need to be vague. This might be okay if it were just the source docs that were this way, but I feel like alternative introductions and how-to's scattered across the web have latched on to this vague language and the confusion has proliferated.

It's socially hard to say "hold on, I don't understand any of that", because you don't know if everybody else _just gets it_ and you're the stupid one. In the PWA space, I really do feel like there's a lot of people nodding along assuming everyone else understands what a PWA is and they must be missing something. You know, imposter syndrome.

Communication is difficult, naming things is the hardest thing, and the Chrome team is working hard. And I really like these folks, so I just want to express that I personally feel like some of their tech releases are _really_ hard to grok. I don't think this is limited to PWA. AMP (Accelerated mobile pages) followed a similar trend of "wait, what are these for? what are you doing with these?"

Google plays a central role in this confusion because they are the organization most strongly attempting to blur the lines between _the open web_ and _their platform_. Google blurs the line between _this is a tool to interact with Google products_ and _this is a direction or philosophy for web development_. It can be hard to follow.

Again, I say this from the perspective of having already built a PWA, I think. I think we're doing it for all the right reasons. I think it's working because about a third of visitors who see the notice to install it do so. This is a high number.

But I'm still not sure about any of this. I will surely write that article I meant to write in the first place as soon as I wrap my head around all these things.