Develop

Progressive Web Apps

Updated: Jul 22, 2026

Overview

Packaging a web app as a Progressive Web App (PWA) is an optional way to distribute it through the Meta Horizon Store. A web app can remain available through its website without a PWA package.
PWA packaging applies to both the 2D and 3D web paths. It is a distribution option, not a separate content category.
Choose 2D app mode for a windowed site, including screen-based 3D. Choose immersive app mode only when the packaged app launches into an immersive WebXR session.

How PWA packaging works

Bubblewrap creates an Android project from your hosted Web App Manifest. The generated project opens your web content through a Trusted Web Activity.
The manifest provides the web app’s start URL, scope, icons, and other standard metadata. Meta Quest-specific project settings are added when you initialize the package with the Meta Quest Bubblewrap option.
After installing Bubblewrap, initialize a Meta Quest project with the public URL of your manifest:
bubblewrap init --manifest=https://example.com/manifest.webmanifest --metaquest

Get started

Use the following guides to prepare and package your web app:
For in-app purchases in an immersive package, see In-app purchases in WebXR PWAs. For submission guidance, see Distribute.