Skip to content

Why is Coalesce a PWA?

Posted in Technology, Business

Coalesce is a progressive web app, which is different from both native apps and traditional web apps. Here I'm going to go into what that really means, and why that's good for everyone who uses Coalesce.

What is a PWA?

PWA stands for Progressive Web App, which is a web app that's progressive - okay that's not helpful.

First, a "Web App" is any application delivered as a website. GMail and Trello are great examples of web apps. If you can use the app within Firefox, Chrome, or any other web browser, it's a web app. These are different from "Native Apps" that need to be downloaded and installed on a device before you use them, often from an app store of some sort.

The name "PWA" was coined by Google and is essentially just a term for web apps that take advantage of several new web browser features to offer an experience close to native apps. The biggest of these features are:

  • Install to home screen
  • Self contained (not confined to web browser)
  • Offline support
  • Push notifications

These are made possible under-the-hood by the web app manifest specification, javascript service workers, and also less-new things like IndexedDB, but I won't get into the technical details now. Instead, I'd like to focus on the impact that a PWA has on the people who use it (you) and the people who manage it (me).

PWAs vs Native Apps

You might have noticed that each feature in the list above is pretty standard for native apps. Until recently, though, they were basically impossible from a web app. That's why PWAs are a big deal - they are web apps with some of the defining characteristics of native apps, blurring the lines between the two. If a PWA is written well, you might not even be able to tell that it isn't native.

But why jump through hoops to make a web app feel more like a native app? Why not just make a native app to begin with?

One app for every platform

Screenshot of Coalesce looking the same on iOS, Android, and Desktop
Coalesce feels the same and has all the same features on all platforms.
Have you ever used a service where you couldn't do everything on the mobile app and had to go to the desktop version to get something done? Or maybe the Android version got a new feature way before the iOS version?

Those inconsistencies happen when there is a different native app for every platform (and maybe even a normal web app too) - they get out of sync, or one gets prioritized over the others.

PWAs run the same on every major platform: Android, iPhone, Windows, Mac, Linux. This provides for a consistent experience, regardless of what phone or laptop any person prefers.

Not only is it great for the people using the app, but it's great for me too. As the single person working on Coalesce, I have a very limited amount of time. It would take ages to deliver separate apps for each platform, but creating one PWA is managable. By focusing my efforts on just one PWA, I can ship more features and deliver a great experience to everyone.

Optional installation

Screenshot of Coalesce working in the browser and standalone on iOS
Coalesce can be used from the browser or self-contained like a native app.
A feature of native apps that is often taken for granted is the ability to manage it separately from other apps. You can add it to your home screen, open it directly, and it gets its own spot in the task manager. Meanwhile, web apps have been relegated to living as tabs within your web browser.

Its easy to forget about a web app when its stuck in the browser and lots of people prefer the standalone experience of native apps. PWAs allow for that standalone experience, plus one more interesting feature: it's totally optional.

Some people prefer to keep their home screen uncluttered and use apps from the browser. Others have limited storage, and won't have to choose between keeping their selfies and installing an app, because you don't have to install a PWA to use it - it works perfectly in the browser too.

More control over updates

Screenshot of the alert when Coalesce needs an update
Delivering Coalesce as a PWA allowed me to build in a quick and easy updating system.
I encourage everyone to enable automatic app updating on all their devices and programs, but there are many who can't or don't for whatever reason. Without auto-update, and even sometimes with it, keeping all your apps up to date can be a bit of a chore, but it is necessary if you want the best and safest experience with any given app. Native apps suffer this problem, but apps delivered via the web don't.

When apps are delivered via the web, they can be updated seamlessly or with extremely little user intervention. This is great for people using apps because they never have to worry about being out of date.

It's also great for the people who create the apps. When I push out a Coalesce update, I can be sure that everyone will be using the latest version. If Coalesce were native, I'd have to be much more careful about making sure older versions of the app are supported during the period of time between deployment and everyone updating. That means more time spent on things that don't provide people value, which in a team of one, can really slow things down.

A related benefit of delivering an app over the web is that the web is not controlled by any single entity. Apps delivered by the Apple App Store have to deal with Apple's fees, rules, and long review processes. Google has its own rules and fees for it's Play Store. In both cases, I'd be forced to spend more time just to get Coalesce into people's hands, and probably have to charge more too. By delivering Coalesce via the web, none of us have to worry about a third party getting in the way of Coalesce helping people.

Downsides

I'd be lying by omission if I didn't mention some of the downsides of creating Coalesce as a PWA.

PWA features are still very early in adoption and implementation. iOS doesn't fully support PWA functionality, though it is slowly and quietly getting better. On the other hand, Google and Microsoft are both pushing PWA technology and I'm confident that they will only become more supported, mature, and common in the future.

PWAs still can't quite do everything that native apps can. One day, I may bump up against the limits of PWAs and that could restrict the functionality of Coalesce. I know, however, that I won't run into this problem for the core featureset and all currently planned features.

Finally, probably the biggest downside is that PWAs are still new and people just aren't familiar with them. I haven't yet met a person who actually has a PWA on their phone's home screen. That's part of why I'm writing this blog post: to help inform everyone on the benefits and downsides of PWAs. Hopefully Coalesce will be one of the early success stories in the PWA world.

Was it the right choice?

Only the people can decide. I hope that the decision to create Coalesce as a PWA only helps everyone, but time will tell if it was a good call.

Do you have any thoughts or opinions on this? Feel free to tweet at me @orndorffgrant.

If you want to be one of the first to use the Coalesce PWA, please sign up for early access below.