Why I made a PWA and maybe you should too!

Coalesce is a progressive web app, which you might think is a risky move for a startup - after all, have you heard of any successful PWAs yet? Twitter, Instagram, and Spotify all have PWA's but hardly anyone uses them, and those companies all grew with a combination of native and normal web apps before they decided to make PWAs. Here I'll attempt to justify my decision and you can tell me what you think in the comments.

What is a PWA?

If you're reading this, I'm guessing you're familiar with traditional web apps and native apps. You might be new to PWAs though.

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:

  1. Install to home screen
  2. Self contained (not confined to web browser)
  3. Offline support
  4. 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 justify (read: post hoc rationalize) why it was a good business decision.

One app for every platform

PWAs can be installed on any platform. That means I have one codebase to work on, and it works on iOS, Android, Windows, Mac, and Linux. As a solo-founder with a full-time job, I need to save time wherever I can, so cross-platform support without any extra work is a huge bonus. I can focus on shipping features instead of debugging platform specific issues.

This is great for the users too. There will never be an inconsistent experience between the Android and iOS versions of the app, because they're the same app. A notable downside here is that the apps won't "feel" like the platform they're on. I.e. the Coalesce on iOS doesn't really look like other iOS apps. I predict that as web tech becomes more popular for local apps, people will become more accustomed to the different feel.

Installation

So far, you might be like "Okay that makes sense, but traditional web apps get all that too. Why spend the time to make your web app "progressive"?".

A feature of native apps that I think is critical but is often taken for granted is the ability to manage it separately from other apps. You can organize it on 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. My theory is that if people install the app during the trial, they'll just be more aware of it because its on their screen more, and be more likely to remember to use it. If more people on the trial actually use the app and get value from it, more people will convert to paying customers.

Another interesting feature of PWAs: installation is totally optional. By allowing installation, I'm not excluding those who like to keep their web apps in their browser. 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

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

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.

Personal Growth and Interest

This is a selfish and not business serving reason. I think web tech is really cool and am excited about where it's heading. I think PWAs are going to be big and enjoy playing around with the latest tech. At the very least, I'm learning a ton, and it's keeping me interested as I develop this by myself.

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 feature-set 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. I'll need to provide education on how to actually install Coalesce on different platforms.

Was it the right choice?

Who knows.

I sure hope so, but only time will tell.

(This post first appeared on IndieHackers: https://www.indiehackers.com/post/why-i-made-a-pwa-and-maybe-you-should-too-2637e20afa)