![Thomas Steiner](https://web.dev/images/authors/thomassteiner.jpg) Thomas Steiner [GitHub](https://github.com/tomayac) [LinkedIn](https://www.linkedin.com/in/thomassteinerlinkedin) [Mastodon](https://toot.cafe/@tomayac) [Bluesky](https://bsky.app/profile/tomayac.com) [Homepage](https://blog.tomayac.com/)

<br />


Published: March 31, 2023

<br />

PWAs can be accessed through a web browser, or they can be [installed on a
user's home screen](https://web.dev/explore/progressive-web-apps#provide-an-installable-experience).
However, one of the challenges with PWAs is distributing them to app stores.
This is where [PWABuilder](https://pwabuilder.com/) comes in.

PWABuilder is a powerful tool that allows developers to create packages that can
be submitted to various app stores:

- [Google Play Store](https://play.google.com/store)
- [Microsoft Store](https://apps.microsoft.com/)
- [Apple App Store](https://www.apple.com/app-store/)
- [Meta Quest Store](https://www.oculus.com/experiences/quest/)

One of the major advantages of using PWABuilder to create packages is that it
simplifies the process of publishing your web application to app stores.
Normally, submitting an app to app stores requires a lot of work, including
writing code in languages web developers may not necessarily be familiar with,
creating app icons, configuring various settings, and testing the app across
different devices and operating systems. PWABuilder takes care of many of these
tasks automatically, reducing the amount of time and effort required to publish apps.

> [!NOTE]
> **Note:** Internally, PWABuilder uses a command line tool called [`bubblewrap`](https://github.com/GoogleChromeLabs/bubblewrap), which you can read about in the [Trusted Web Activities Quick Start Guide](https://developer.chrome.com/docs/android/trusted-web-activity/quick-start). Rather than use PWABuilder, you can run `bubblewrap` in the command line.

## Prerequisites

If your web app meets a few baseline PWA requirements, you can use PWABuilder to
validate, score, and package your application for stores.

- Your PWA needs to be published at a public URL.
- It must have a complete [web app manifest](https://developer.mozilla.org/docs/Web/Manifest).
- The app has to be served with HTTPS.

> [!IMPORTANT]
> **Key point:**
>
> To publish your package, you will also need a developer account with each platform you want to publish with. For the Microsoft and Google Play stores, these cost a one time fee. For the Apple App Store, an account costs a recurring fee per year. Meta Quest accounts are free.
>
> By submitting to stores, you need to play by their rules. These rules may require you to use their payment mechanisms and pay a commission for each purchase. They may also restrict certain types of content. Carefully assess these aspects for each store you want to publish to.

## Packaging

You can have an application package for your PWA in a few steps:

1. From the homepage of PWABuilder, enter a URL to start the packaging process. PWABuilder takes you to the report card page for your application, where you can view scores and action items for your progressive web app.
2. To proceed to packaging, click the **Package for Stores** button.
3. Select a platform by clicking **Generate Package**. You'll be prompted for metadata related to your application, which varies depending on platform.
4. Select **Download Package** to download your package.

![](https://web.dev/static/articles/pwas-in-app-stores/image/svgcode-pwa-the-pwabuild-a9e0c6ac1542.png) SVGcode PWA in the PWABuilder user interface.

## Submit your app

For guidance on how to publish a PWA to a specific store, be sure to check out the platform-specific articles:

- [Microsoft Store](https://docs.pwabuilder.com/#/builder/windows)
- [Google Play Store](https://docs.pwabuilder.com/#/builder/android)
- [Apple App Store](https://docs.pwabuilder.com/#/builder/app-store)
- [Meta Quest Store](https://docs.pwabuilder.com/#/builder/meta)

## Example

I generated store packages for one of my apps, [SVGcode](https://web.dev/case-studies/svgcode.md.txt),
with PWABuilder.

[![Get it on Google Play.](https://raw.githubusercontent.com/tomayac/SVGcode/main/public/badges/play-store.svg)](https://play.google.com/store/apps/details?id=de.svgco.twa)

[![Get it from Microsoft.](https://raw.githubusercontent.com/tomayac/SVGcode/main/public/badges/microsoft-store.svg)](https://www.microsoft.com/en-us/p/svgcode/9plhxdgsw1rj#activetab=pivot:overviewtab)

Apart from these stores, you can of course get the app in the browser as well.

[![Use it in your web browser.](https://raw.githubusercontent.com/tomayac/SVGcode/main/public/badges/web-browser.svg)](https://svgco.de/)