DEV Community

Cover image for What the heck is a "Progressive Web App"? Seriously.
Ben Halpern
Ben Halpern

Posted on • Updated on

What the heck is a "Progressive Web App"? Seriously.

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 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.

Latest comments (52)

Collapse
 
dandweb profile image
Daniel Dan

Thanks for sharing! For many software houses, creating a PWA is already a software engineering standard. Soon, the availability of a PWA will become a must-have for any serious business.
y-sbm.com/blog/pwa-increase-your-b...

Collapse
 
joanalauren profile image
joanalauren

Good question! And I found an article about "What Does It Take to Develop an Enterprise Web Application?" - romexsoft.com/blog/enterprise-appl... so maybe you will like to know about that too.

Collapse
 
abhishekcghosh profile image
Abhishek Ghosh

I personally think the term "PWA" may have probably began as more of a marketing coinage to collective refer to a bunch of web tech, rather than something really well defined, and it eventually got traction elsewhere in the community. Its definitely a vague, umbrella term. But maybe its fine being a "living definition"? :P As a community, we're still trying to make sense of it - add to it, modify what it means... At this point, IMO it's more of a paradigm or concept than any tech, but you could argue that the concepts are nothing new; rather articulated in a new (and hopefully better?) way to suit the current state of the ever evolving web :)

Collapse
 
shavidzet profile image
Tornike Shavidze

Great article, it's very interesting and useful.
Last week I deployed pwa on my own domain. Behind of app it's preact and service-workers.
You can check: shavidzet.com

Collapse
 
shevchuk218 profile image
Marina Shevchuk

Thanks for the interesting materials. I found great information here: mlsdev.com/blog/161-web-and-mobile...

Collapse
 
gab profile image
Gabriel MagalhΓ£es dos Santos

I read this post in the pwa of yours and I find the user experience it amazing, as good as a native app

Collapse
 
plainjavascript profile image
plainJavaScript

So, I was expecting an example...

Collapse
 
oleksiirybin profile image
oleksii-rybin

Thanks for the article, that's exactly what I'm feeling. Kind of not getting what PWA is and how to deal with it, but kind of embarrassed to ask, cause it looks like everyone else is getting it :D
Waiting for the next article on this topic! :)

Collapse
 
colinclark profile image
Colin Clark

I am more confused now.

Collapse
 
ntregillus profile image
Nate Tregillus

Still no idea what a PWA is....

Collapse
 
domysee profile image
Dominik Weber

THANK YOU!

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.

That hits the nail on the head. I looked it up, but found nothing conclusive, no clear criteria saying "this is a PWA".

So I just went with "PWA is a term for some kind of web app".

What I'm trying to say is, I'm really glad you addressed this, and told everyone they are not alone with this confusion.

Collapse
 
ben profile image
Ben Halpern

Aww happy it resonated.

Collapse
 
aarongustafson profile image
Aaron Gustafson

First off: I work for Microsoft on web standards & accessibility stuff and am focused a great deal on PWAS and interop currently.

I agree, there’s a lot of misinformation about this stuff. I’ve been writing and speaking quite a bit about it. Here are a few links to those materials:

Progressive Web Apps and the Windows Ecosystem
Video: channel9.msdn.com/Events/Build/201...
Post: aaron-gustafson.com/notebook/progr...

Your Siteβ€”Any Siteβ€”Should Be a PWA
aaron-gustafson.com/notebook/your-...

Yes, That Web Project Should Be a PWA
alistapart.com/article/yes-that-we...

Quite a few others have been doing great work on helping define what PWAs are. In no particular order, I’d recommend:

Betting on the Web
joreteg.com/blog/betting-on-the-web

A Progressive Roadmap for your Progressive WebΒ App
cloudfour.com/thinks/a-progressive...

How to turn your website into a PWA
mxb.at/blog/how-to-turn-your-websi...

Progressing the Web
adactio.com/journal/12461

Collapse
 
rossta profile image
Ross Kaffenberger

Great thoughts, Ben. Somewhat on the topic of progressive web apps, communication, and naming things, I find the term "Service Worker" to be incredibly confusing as well.

Collapse
 
ben profile image
Ben Halpern

Yeah, it took me a while to wrap my head around some of these topics and once I did I looked back and was like "wait, that wasn't so hard, it must be a communication breakdown"

The #ExplainLikeImFive tag on dev.to was sort of born out of this thought.

P.S. dev.to runs on your Service Worker gem, thanks for building great stuff ❀️

Collapse
 
rossta profile image
Ross Kaffenberger

Great to hear! Glad it's working out for you. Let me know if you have any issues.

Collapse
 
software_india profile image
YUHIRO.DE

This Progressive Web App sounds a lot like "Cross Mobile App Development".

Collapse
 
hemanth profile image
hemanth.hm

If you want to pwa at pwa you might like pwa.tips /me and my friend started it.