My 11 year old Josh drew this for me :)

Progressing Web Apps

Dion Almaer
Ben and Dion
Published in
6 min readJul 20, 2021

--

NOTE: This was originally posted on my own corner of the Internet.

Alex wrote primarily about the role of the App Store in his opus on the pursuit of appiness. It has a lot of deep thinking, and I particularly like how Alex takes apart the distinct pieces that make up the App Store experience, as I find they often get glommed together:

  1. Security screens to prevent malign developer behavior on overpowered native platforms
  2. Discovery mechanisms to help users find content, e.g., search
  3. App distribution tools; i.e., a CDN for binaries
  4. Low-friction payment clearing houses

The topic of app stores and their role is top of mind for the industry right now, and it is appropriate to think about the role of the Open Web here, and how important the web can be as an open distribution tool for apps (and the other vectors).

We have had the opportunity to learn a lot from the rise of mobile, but I have been found myself thinking about the vision for the web as it relates to apps. Instead of solely taking mobile apps, and rendering them at the end of URLs, do we have a vision for, dare I say it, Webby Apps?

From General Purpose to Purpose Built

The Web evolves in a particular manner, due to its openness and the value in being able to keep rendering most content as time moves on. As capabilities have grown, it has been able to move from the world of linked documents to rich experiences. We now have a strong general purpose platform that can be used to build a massive variety of experiences. This is a great thing, and it enables experimentation at the edges.

However, it also tends to get us into some trouble. We see countless debates on how $MY_STACK is the ideal one for all jobs on the Web. What if we could give various approaches space, and think about how to drive purpose build stacks that offer the holotypes that make sense for the type of experience you are trying to deliver?

When you look at two examples on mobile: Apps vs. Games, the most popular tooling differs a lot. Sure, you can choose to build a game using the framework of choice for the host platform, and you could make an app using Unity…. But it doesn’t normally make sense. What is the web’s equivalent here?

The spectrum of Apps and Content

We have a spectrum rather than strict categorization, but I do think that we can find generally smart choices for experiences on this spectrum.

At one end we have the content web. The one that publishers and content creators thrive on with the rich capabilities that we offers through the document structure that kicked it all off. I love this Web, and think it is a treasure in that you can own your home on the Internet, and you can build a connection with your audience as they visit you at your domain. There is a lot of innovation in the content creation space, and Google is diving in on how the Web can play a strong role thanks to Paul Bakaus and team!

On the other end we have rich productivity apps, which rival any desktop and mobile host experience. I still remember working on the Bespin code editor, partly to see what the Web could do…. And now we see suites of products that allow you to work with media such as image and video editing.

There is a huge range of experiences in between, which often gets us into some trouble as we may throw out some babies with bath water.

Fast, Rich, Dynamic Commerce

Let’s take commerce, if we go all in on a rich app shell experience that comes all in with a loading indicator…. we may have lost the users that tapped or clicked wanting to quickly see a product. Amortizing the loading cost (which may be just fine with the type of web app that sits pinned on tab one or two all day) becomes a bouncer. But if we build a web site that doesn’t have the type of rich UI that users expect from a delightful retail experience, then you may lose them out the other door. Fortunately, we have middle road options that allow you to start fast and feel rich.

Jason Miller details the Islands Architecture, which can be perfect at delivering a fast content experience that progressively loads richer interactions.

Commerce experiences are deceptively dynamic. There was a period of time where the AMP team thought commerce could be good fit, as speed is so important to conversion. However, the core of commerce is dynamic. You may serve very different content depending on who the users is, based on their preferences, usage, and various attributes about their session.

Within a page such as product details, there is plenty of content that you want to cache aggressively, and different pieces can have very different staleness. Pricing is very dynamic and you want it up to date. Reviews? If a new review comes in a millisecond before you load the page, it’s OK not to show it.

Reaching for Webby Apps

And this gets us to webby apps. We have spent the last decade catching the Web up to mobile, and we have more to do. We needed browsers to scale down to mobile. We needed APIs that work for mobile use cases. We need ways to get into AppStores. There was and will always be so much to do here.

Some may argue that using web technology as a single way to build for multiple platforms is “enough”, and I will have more to say on some of this in an upcoming post on breaking through the Web platform and having more escape hatches, but the Web can offer so much more here. Gmail didn’t feel like Eudora or Outlook at the end of a URL. It felt web-like. What is the vision for the web ~five years from now and how experiences can feel different here vs. uncanny versions?

I often hear “reach” used as a rational for investing in the Web. The Web is ubiquitous. Don’t you want an addressable market of $ENTIRE_INTERNET? I think this is only partially right. You could probably make the case that building a simple productivity tool and putting it in the iOS App Store gives you access to a large enough market, and one that has large wallets. Where this breaks down though IMO is sharing.

I have been working with a friend who is building an exciting space repetition learning system, called Active Recall. When building something like this, you can think in an app-y way and make it a personal data store of your knowledge, and have simple ways to share content that you have to build.

But, as soon as you think about what a truly webby version could be, you see something quite different. When content is addressable, the notion of sharing and people are first class citizens. When I share a deck of content on CSS topics, I know that you will be able to see them even if you have never installed the app. I can share the content on social and know that anyone out there can see it!

And not only can humans see the content, the programmable web, with the Google bot and others are able to index and help people find it.

I don’t just want a web that is akin to binary blobs at the end of URLs, but they happen to use JavaScript and CSS and HTML. I want a web that thrives on the connectivity that ubiquity, and allows for experiences that transcend the siloed app systems.

I think of use cases like the commerce ones we mention, and I legitimately see how the Web can offer an overall experience that is better than an app for each store that you want. We can compose and bring things together.

I can’t wait to see us truly Progress Webby Apps.

--

--