I recently spoke with Microsoft’s Jeff Burtoft and Aaron Gustafson about the company’s plans to bring Progressive Web Apps (PWAs) to Windows 10. And I couldn’t be more excited about Microsoft’s plans to integrate PWAs with the desktop.
This is a milestone I’ve been looking forward to for a long time. But with the “Redstone 4” release—currently due in March or April 2018—Microsoft will formally support PWAs as a key platform feature of Windows 10, matching and in some ways exceeding what Google has done in Android.
Watching the industry embrace PWAs is exciting on a number of levels. This apps platform is a perfect storm of the right ideas at the right time, a spiritual combination of the cross-platform dreams for Java and the pervasive nature and openness of the web. I’ll be writing soon more about my broader take on the future of PWAs across all client platforms. But for now, I’d like to focus on that most unlikely of platform makers to embrace the future. Yes. Microsoft.
Given how much has changed at Microsoft in the Nadella era, maybe “unlikely” is the wrong word: The once-insular software giant has embraced open source and open standards at a pace that is both dizzying and confusing to folks like me who have followed Microsoft for decades. I’ll get there.
But in the meantime, the new Microsoft is racing forward into the 21st century. And part of its evolving platform strategy is embracing technologies that it did not invent or play any developmental role. It does this to make life easier on developers, which can now target a platform that works on virtually all modern devices, and to make things better for its own customers, who, to date, have been under-served by the Microsoft Store on Windows.
Nothing Burtoft and Gustafson told me is necessarily new information: Microsoft has quietly been trickling out its plans for PWAs over the past year and a half or so, and this is all public information. But aside from me and—OK, just me, basically—few people have really reported on these efforts. Which, by the way, are just about to go public in a big way.
So let’s discuss how Microsoft came to embrace PWAs and how it plans to integrate this technology into Windows 10. This will be news to many, I think.
“Google led the way with Progressive Web Apps, and after a long process, we decided that we needed to fully support it,” Microsoft’s Jeff Burtoft told me. “We weren’t initially sure if it even made sense to align our strategy with theirs, to give it the same priority.”
Of course, Microsoft was already building a set of technologies that might be seen as a PWA competitor, or least an alternative. If you go back to Build 2016, you’ll see Microsoft introducing various “bridges” for developers, ways for them to bring their existing code bases and apps to Windows 10. Among them was something called Project Westminster, or Hosted Web Apps, which lets developers publish existing web apps in Microsoft Store as UWP apps.
“Hosted Web Apps are UWP apps,” Burtoft said. “They’re built with web technologies, hosted on a web server, and run like a website. But they’re really UWPs that can run across Windows 10 PCs, phone, Xbox One, and even IoT. Developers gain access to all UWP APIs, just as they would with a new UWP app built in C# or C++. It’s an immense API layer.”
But just as Microsoft was going down that path, Google started talking up PWAs, a formalized way of thinking about web apps that provided native-ish features like responsive design, security, push notification support, discoverability, and more.
“Google had a similar strategy for web apps,” Burtoft noted. “But from a different angle. Where we were talking about getting web apps into our store, they were talking about browser apps that initially ran only inside of the Chrome browser on Android.”
Google’s initial take on PWAs wasn’t that compelling: The full resources of Chrome needed to load each time a PWA ran, and there was no minimal user interface or runtime. But when Google introduced the notion of service worker, the technological core of what we now know as PWAs, it was a big differentiator. With service workers, PWAs could work like native apps, offering features like offline support, background processing, and more.
“We met with Google about a year and a half ago,” Burtoft told me, “to see if these two things [Hosted Web Apps and PWAs] were really the same thing. And if they were close enough, we decided that we would move forward together, and provide a single way for web developers to build apps that run on all platforms.”
That’s exactly what happened.
As a result, the Hosted Web Apps platform will blend into PWAs on Windows 10 over time, I was told. And Microsoft began work towards that future by implementing service worker and other PWA technologies at the platform level. The foundational work occurred, roughly speaking, during the development of the Windows 10 Fall Creators Update (“Redstone 3”). And it will be turned on, first for Insiders, during the Redstone 4 development cycle.
“We are providing the same support for PWAs in Windows 10 as Google does [in Android],” Burtoft said.
But Microsoft is also making PWAs more native, if you will—native-ish, I guess—on Windows by distributing them through the Microsoft Store. This was a matter of some debate, and it is possible—likely, I’d say—that in a future release of Windows 10, users will be able to install PWAs from a hyperlink in a web browser. For now, however, it makes more sense for the Store to be the conduit for all apps on Microsoft’s platform.
“This is the right approach,” Burtoft noted, after explaining the internal debate. “People understand the Store. You use it to install apps, it manages updates to those apps, and because PWAs inherit real apps features on Windows, they are apps. You can right-click them to uninstall them, and the package sizes are tiny, measuring in KB, not MB.”
There are other benefits to putting PWAs in the Store. Users don’t care “how” an app was made, just that the app exists and is of high quality. PWAs can sit in the Store alongside other app types—“pure” UWPs, Desktop Bridge apps, whatever—and be discovered normally.
Better still, with Google embracing PWAs as well, it is highly likely that the search giant will convert its own massively popular web apps—Gmail, Google Calendar, Google Play Music, whatever—into PWAs, making it a truly universal platform. And that means that these apps, finally, would be coming to the Microsoft Store and Windows 10.
Breathe. This can happen. Probably will happen.
One of the unnecessarily controversial aspects to Microsoft’s PWA strategy is that it is using the Bing search engine to index the web, find PWAs out in the wild, and then put them automatically into the Microsoft Store. Some have alleged that this is Microsoft overreaching, that perhaps developers don’t want their PWAs in the Store, or would like to do that work themselves and perhaps charge customers for their efforts.
Both of these concerns are misplaced.
As it turns out, the way that PWAs are indexed is that Bing searches for explicit instructions contained in a manifest file. These instructions will tell Microsoft whether or not the PWA can be added to the Store. So any PWAs that are automatically added to the Store in this fashion were done so with the OK of the developer. And if a developer wishes to put their PWAs in the Store explicitly and, optionally, charge for it, they can do so.
There are a lot of technical issues to this system, and I don’t want to get too bogged down in that here. But, yes, Microsoft understands that manual curation is required too, and that not all web apps are going to be of high quality. There is a fear that the easy onboarding of PWAs into the Store will result in malicious web developers trying to squeeze their way past the normal Store protections. And Microsoft is sensitive to the notion of its “embrace and extend” past.
“This is not a land grab,” Aaron Gustafson told me. “It’s just another avenue for developers to distribute and promote their offerings. We’re not making money from this.”
Internally, Microsoft is also making its first steps towards a PWA future for its own apps. As you may have heard, Microsoft Teams is being implemented as a PWA so that a single code base can run on any client platform.
This led me to ask about various possibilities.
For example, given that there are what feels like 17 different versions of Outlook out there, would that team consider rallying around a single Outlook PWA code base and sparing us from today’s confusion? After all, one of the beautiful things about the PWA platform is the progressive nature of these apps: They can scale according to the capabilities of the device on which they’re running. That is, on a phone, an Outlook PWA would look and work like a phone app, but on a PC, it would offer more functionality.
“It will happen,” Burtoft predicted. “We are having conversations around the company now [on this topic].”
(It is reasonable not to expect such a solution to happen in the short term, of course. But that Microsoft is discussing this internally is, I think, profound.)
Critics will note that PWAs simply don’t make sense for certain types of solutions. Games, for example. That truly native apps will always “beat” native-ish apps for certain workloads. That’s obvious. But the world isn’t black and white. And just as cloud computing will generally, but never completely, “beat” on-premises servers, PWAs probably make more sense, generally, than native apps going forward.
“There’s always a ‘web vs. native’ rivalry in the press,” Gustafson added. “But I don’t think that fits in this. Yeah, it makes for good headlines. But developers see PWAs as a great option. They may need to go all-in on native code for whatever reasons. But maintaining multiple different versions of an experience—web, iOS, Android, Windows, whatever—is unsustainable. You can build largely the same experience for each by doubling down on the web, by focusing your developments effort there. It’s a huge opportunity.”
PWAs should also have an important and positive impact on such things as Windows 10 S, which can only run Store apps, and Windows 10 on ARM, which will run x86 desktop applications in an emulation mode of which we are not yet confident from a performance perspective. Because PWAs are Store apps, they will run on both of these platforms. And they will help undercut any compatibility or performance complaints about those platforms. PWAs will run great on both.
Great, but what about that schedule? What’s next?
As noted, the foundation for PWAs in Windows 10 was laid in the Fall Creators Update, and developers who are interested in testing PWAs in that release can do so by setting a flag in Microsoft Edge.
Sometime soon, however, this flag will be opened up in Microsoft Edge for users who are in the Windows Insider Program and now testing Redstone 4. That means that Insiders will soon be able to run PWAs and websites that support service worker in the Windows 10 Insider Preview normally.
Microsoft is working with several partners to test PWAs on Windows 10, and while they would not divulge any to me—“they’re names you know”—Burtoft and Gustafson said that the work was centering largely around getting PWAs to look and work well on the desktop.
“Lots of PWAs are geared to mobile today because of Google,” Burtoft said. “But we need developers to think outside of that box. The principles that Google speaks of—responsive design, and so on—are never really illustrated for the desktop. So that is in our hands.”
Once Redstone 4 ships in the Spring, Microsoft will have a “big push” for developers, and it’s reasonable to assume that Build 2018 will be a very public venue for that discussion.
“By Build, those pieces will all be lined up and running,” Burtoft added. “We’re going to talk about it in a wide way.”
Developers who are interested in PWA should check out Microsoft’s PWA Builder website. This will help you build that manifest file that Bing is looking for, and it will point out issues that will prevent a website from becoming a real PWA. It can even generate an AppX file—e.g. a UWP—that developers can submit to the Store. Today, as a Hosted Web App (with no service worker support). Tomorrow as a PWA.
On a side note, one of the most hopeful aspects of this story is how Google and Microsoft are working together. Burtoft and Gustafson spoke often of their collaboration with Google. And I had noted previously that Google referred to their “friends at Microsoft” during a public presentation about PWAs this year.
And it’s not just Google: Because PWAs are all about open web technologies, they are being embraced by all the right players, including Apple and Mozilla. And for its part, Microsoft will let standardization have precedence over native features. For example, Windows 10 supports its own form of push notifications, but if PWA push notifications offer the same rich features, they will favor the PWA tech over the Windows-only stuff.
“Now that we’re moving to a software standard, some of those [Windows-centric] advantages are less important,” Burtoft told me. “Google is following par on this, too, and matching the features we are exposing in PWAs in Windows.”
Some features will, of course, remain platform-specific. There’s probably no reason for Google to support live tiles in Android, for example. But standardization will occur where it makes sense. Which is in most capabilities.
“Developers want to write portable code,” Gustafson added. “When that can happen, it will.”
I didn’t get specifics, but we should hear soon from the PWA folks at Microsoft, both on the Bing indexing front and via the emerging PWA capabilities in the Windows Insider program. And I can’t wait. This is huge, and it’s going to positively impact everyone who uses Windows.
While I’ve written a lot about PWAs here on Thurrott.com, Burtoft, Gustafson, and others have been spreading the word as well. Here are some PWA resources you might consider for more information.
Yes, That Web Project Should Be a PWA by Aaron Gustafson. Perhaps the definitive take on PWAs at this time. Well worth your time and effort.
Next-generation web apps for education by Jeff Burtoft.
Progressive web apps and the Windows ecosystem. Great video session from Build 2017, with Aaron Gustafson.
PWA, HWA, Electron, oh my! Making sense of the evolving web app landscape. Great video session from the Microsoft Edge Web Summit 2017.