# PWAs on Microsoft Edge (sidebar, store)

> How Microsoft Edge installs a PWA from the address bar, what the installed window carries, the Microsoft Store route, and the deprecated sidebar member.

Microsoft Edge installs a qualifying PWA from an icon in its address bar, runs it in a
window with Edge's **App info** menu in the title bar, and lists it on `edge://apps`; the
same web app can be packaged with PWABuilder for the Microsoft Store, and the
`edge_side_panel` manifest member that pinned a PWA to the Edge sidebar is deprecated as of
2026-07.

## How it works

Edge is a Chromium browser, so the manifest requirements and the `beforeinstallprompt`
event are the ones documented for Chrome; what is Edge-specific is the UI around them,
the Windows integration, and the Store route.

### Install support from the address bar

When Edge decides a site is an installable PWA it shows the **App available** icon in the
address bar; clicking it opens an install flyout with an **Install** button, and the app
starts running as a Windows app
([Use Progressive Web Apps in Microsoft Edge](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/ux),
Microsoft Learn, 2025-10-15). Any site, manifest or not, can be installed from
**Settings and more** > **More tools** > **Apps** > **Install this site as an app**
(Microsoft Support). The post-install dialog carries three checkboxes: **Pin to taskbar**,
**Pin to Start**, and **Auto-start on device login**; the last one can also be switched on
later from `edge://apps` through the app's **More options** button. All labels here are the
English UI.

### The installed window

The installed app opens in its own window whose title bar ends in a **Settings and more**
(...) button. That button opens the **App info** menu: the app icon, name, and publisher
(the server's domain), the commands **Pin to taskbar**, **Pin to Start**, and
**App settings**, and submenus **Privacy** (cookie counts), **Extensions**, and
**More tools**. On Windows the app appears in the taskbar, in the Start menu, and in the
Alt+Tab switcher, and a manifest `shortcuts` member fills its taskbar right-click menu.
Installed apps are listed on `edge://apps` (sortable by install date, recent use, or name),
under **Settings and more** > **More tools** > **Apps** > **View apps**, and in Windows
Settings under **Add or remove programs** like any other app.

### Publishing to the Microsoft Store

No code changes are needed to list a PWA in the Store
([Publish a PWA to the Microsoft Store](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/how-to/microsoft-store),
Microsoft Learn). The steps: reserve a name in Partner Center under **New product** >
**MSIX or PWA app**, copy the **Package ID**, **Publisher ID**, and **Publisher display
name**, generate a Windows package on PWABuilder (the download is a `.zip` holding an
`.msixbundle` and a `.classic.appxbundle`), and submit both files; review typically takes
24 to 48 hours. Front-end and service worker changes reach Store users through the normal
page load, but any manifest change (icon, name, `file_handlers`, `protocol_handlers`,
`share_target`) requires a new package, because the manifest is copied into the MSIX. A
Store-installed PWA has a hard-coded `start_url` on the principal domain, so a redirect to
a locale domain such as `contoso.co.ke` counts as out of scope and Edge shows the URL and
page title at the top of the window; Microsoft documents no way to suppress it.

### The deprecated sidebar member

`edge_side_panel` let a PWA be pinned to the Edge sidebar, with a `preferred_width` to
request more than the 376 px minimum
([Build a PWA for the sidebar in Microsoft Edge](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/how-to/sidebar),
Microsoft Learn). The page opens with the notice "Update July 2026: This feature is being
deprecated; it will soon no longer be supported." The detection mechanism it documents, the
`Edge Side Panel` brand in `Sec-CH-UA` and in `navigator.userAgentData.brands`, is still
the way to tell a sidebar session from a window. Treat the member as something to remove
from a manifest, and see [Manifest edge_side_panel: pinning a PWA to the Microsoft Edge sidebar](/reference/manifest/edge-side-panel/)
for the syntax.

## Examples

The two checks below are independent: one reads where the page is running, the other
decides whether an install button should exist at all.

### Telling a sidebar session from a window

`navigator.userAgentData` is Chromium-only, so the lookup is guarded and the fallback is
the ordinary window layout:

```js
function isEdgeSidebar() {
  const brands = navigator.userAgentData?.brands;
  if (!brands) {
    return false; // no Client Hints API: assume a normal window or tab
  }
  return brands.some((b) => b.brand === 'Edge Side Panel');
}

document.body.classList.toggle('sidebar', isEdgeSidebar());
```

A sidebar session reports `Sec-CH-UA-Mobile: ?0`, so a mobile layout keyed on that hint is
not selected there by default; the brand check is what lets a page choose its narrow layout
on purpose.

### Hiding the install button once the app is installed

`beforeinstallprompt` exists only in Chromium browsers
([Window: beforeinstallprompt event](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeinstallprompt_event),
MDN), and an installed window reports `display-mode: standalone`:

```js
const button = document.querySelector('#install');
let deferredPrompt = null;

window.addEventListener('beforeinstallprompt', (event) => {
  event.preventDefault();
  deferredPrompt = event;
  const standalone = window.matchMedia?.('(display-mode: standalone)').matches ?? false;
  button.hidden = standalone; // already installed: keep the button away
});

button.addEventListener('click', async () => {
  if (!deferredPrompt) return;
  await deferredPrompt.prompt();
  deferredPrompt = null;
});
```

Without the event (Safari, Firefox) the button stays hidden by its default `hidden`
attribute, and the browser's own install entry point remains the only path.

## Observed behaviour

Edge marks a Store install on the wire, which is the one reliable way to count Store users
separately from address-bar installs.

:::observed
On the first navigation of a PWA installed from the Microsoft Store, Edge sends the request
header `Referer: app-info://platform/microsoft-store`, readable on the client as
`document.referrer` (Microsoft Learn, "Publish a PWA to the Microsoft Store", read
2026-10). An address-bar install sends no such header, and a later navigation inside the
app carries the ordinary page referrer.
:::

The same document notes that the out-of-scope URL bar appears for Store installs that
redirect to a locale domain and not for address-bar installs of the same site, so the two
install sources can behave differently on first launch.

## See also

- [Use Progressive Web Apps in Microsoft Edge](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/ux) (learn.microsoft.com)
- [Publish a PWA to the Microsoft Store](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/how-to/microsoft-store) (learn.microsoft.com)
- [Build a PWA for the sidebar in Microsoft Edge](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/how-to/sidebar) (learn.microsoft.com)
- [Manifest edge_side_panel: pinning a PWA to the Microsoft Edge sidebar](/reference/manifest/edge-side-panel/)
- [PWAs on Windows](/reference/platforms/windows/)
- [PWAs on desktop](/reference/platforms/desktop/)
- [Distribute a PWA via app stores](/guides/app-store-distribution/)