How to publish an Electron app to the Microsoft Store

Most Electron apps reach the Microsoft Store as an AppX or MSIX package built by electron-builder. You reserve the name in Partner Center, copy three identity values into your config, build the package and make the first submission by hand. Microsoft signs the package and the Store delivers updates, so electron-updater stays out of the Store build. After that, StoreFast can publish each new .msix for you.

Package your Electron app as an MSIX with electron-builder, using the identity values from Partner Center. If you already sign and host an NSIS installer, Microsoft also lets you list that EXE instead.

  • electron-builder's appx target is stable and its output is accepted by Partner Center. Its msix target is beta and ships in the electron-builder 27 pre-releases.
  • You don't need a code signing certificate. Microsoft re-signs MSIX and AppX packages when they're published.
  • The Store updates MSIX installs itself, and electron-builder says electron-updater doesn't support AppX, so skip your updater in the Store build.
  • StoreFast publishes updates for apps shipped as a single .msix. .appx files, bundles, and EXE and MSI apps aren't supported yet.

Which tool should package your Electron app?

ToolWhat it writesStatus
electron-builder appx target.appxStable
electron-builder msix target.msix, .msixbundle, .msixuploadBeta, in electron-builder 27 pre-releases
Electron Forge MSIX maker.msixExperimental since Forge 7.10
electron-windows-msix.msixThe module behind the Forge maker
electron-windows-store.appxIn Electron's Windows Store guide, last released in 2018
MSIX Packaging Tool.msixConverts an existing .exe or .msi installer

Partner Center takes .appx and .msix files alike. StoreFast reads the package in your browser and takes a single .msix, so if you want StoreFast to publish your updates, build an .msix from the start. With electron-builder that means the msix target. With Electron Forge, it's the MSIX maker.

MSIX or an EXE installer?

FeatureMSIX or AppX packageNSIS EXE installer
Code signing certificateNot neededMicrosoft re-signs itRequiredfrom a Trusted Root Program CA
HostingMicrosoftYour versioned HTTPS URL
Partner Center product typeMSIX or PWA appEXE or MSI app
Updates for existing usersThe StoreYour in-app updater
electron-updaterNoYes
Updates through StoreFastYessingle .msixNocoming

The signing rows come from Microsoft's package requirements and Store policy 10.2.9. Microsoft's page on EXE and MSI updates says the Store doesn't update those apps for existing users, and lets your app update itself if its installer supports it.

How to publish an Electron app as an MSIX

  1. 1

    Reserve the name

    In Partner Center, click New product, choose MSIX or PWA app and reserve your app's name. A reservation lasts three months if you don't use it. Then open Product identity under Product management and copy Package/Identity/Name, Package/Identity/Publisher and Package/Properties/PublisherDisplayName.

  2. 2

    Add the identity to electron-builder

    Put the three values in the appx section of your electron-builder config. They're case-sensitive, so paste them exactly. applicationId defaults to identityName, but each part of it has to start with a letter. If your Package/Identity/Name starts with digits, electron-builder strips them with a warning, or you can set applicationId yourself.

    # electron-builder.yml
    win:
      target: appx
    appx:
      identityName: 12345MyCompany.MyApp        # Package/Identity/Name
      publisher: CN=00000000-0000-0000-0000-000000000000   # Package/Identity/Publisher
      publisherDisplayName: My Company          # Package/Properties/PublisherDisplayName
      applicationId: MyApp
      displayName: My App

    For an .msix, the msix target takes the same keys under msix and needs a newer winCodeSign toolset. Build one architecture, like x64, to get a single .msix instead of a bundle.

    # electron-builder.yml, electron-builder 27 pre-release
    win:
      target: msix
    toolsets:
      winCodeSign: "1.1.0"
    msix:
      identityName: 12345MyCompany.MyApp
      publisher: CN=00000000-0000-0000-0000-000000000000
      publisherDisplayName: My Company
      applicationId: MyApp
      displayName: My App

    Put StoreLogo.png, Square150x150Logo.png, Square44x44Logo.png and Wide310x150Logo.png in build/appx, or electron-builder uses its default logos. It adds the runFullTrust capability that every Electron app needs. The version comes from package.json, so 1.4.0 becomes 1.4.0.0. Leave setBuildNumber off, because Microsoft reserves the last number for the Store and it has to be 0.

  3. 3

    Leave updates to the Store

    electron-builder's docs say electron-updater doesn't support AppX and that the Microsoft Store handles updates for MSIX. If the same code also ships as an NSIS installer, check process.windowsStore, which Electron sets to true when the app runs as an MSIX or AppX package.

    const { app } = require('electron')
    const { autoUpdater } = require('electron-updater')
    
    app.whenReady().then(() => {
      // true when the app runs as an MSIX or AppX package, like a Store install
      if (!process.windowsStore) autoUpdater.checkForUpdatesAndNotify()
    })
  4. 4

    Build and test it

    electron-builder builds AppX and MSIX on Windows, and its msix docs describe building from macOS through a Parallels Windows VM. Then run the Windows App Certification Kit on the package before you submit.

    electron-builder --win msix
    
    # from an admin prompt, in the App Certification Kit folder
    appcert.exe reset
    appcert.exe test -appxpackagepath C:\path\MyApp-1.4.0.msix -reportoutputpath C:\path\report.xml
  5. 5

    Make the first submission

    Start a submission in Partner Center and fill in pricing and availability, properties, age ratings, the package and the Store listing. Microsoft's policies say Win32 products must always have a privacy policy, so enter its URL. runFullTrust is a restricted capability, so the Submission options page asks you to explain why the app needs it. Then submit for certification. The certification failed guide covers what to do if it comes back with errors.

  6. 6

    Publish updates

    For each new version, raise the version in package.json and build a new .msix. You can upload it in a new Partner Center submission, or drop it on your app's page in StoreFast, which checks the name and version, translates What's new into every listing language and submits it.

Ship updates from CI, the API or an agent

From GitHub Actions, add the StoreFast action after the step that runs electron-builder on a Windows runner. electron-builder writes to dist by default, and the package input has to match exactly one .msix.

- name: Publish to the Microsoft Store
  uses: legendaryspy/storefast-publish@v1
  with:
    api-key: ${{ secrets.STOREFAST_API_KEY }}
    app: 9PJWF4W8V4WG
    package: dist/*.msix

The action reads the version from the package and writes What's new from your CHANGELOG.md or the GitHub release. By default the update waits on your app's page until you click Submit, and submit: true sends it straight to certification. The GitHub Actions guide covers the rest. StoreFast's REST API does the same steps from any script, and a coding agent like Claude Code, Cursor or Codex can do them through StoreFast's MCP server, asking you before it submits. The action, API and MCP server come with the Indie and Studio plans and the trial.

Other ways to get an Electron app into the Store

  • electron-windows-store. Electron's own Windows Store guide runs this CLI on an app packaged with @electron/packager. It needs the Windows 10 SDK and writes an .appx, which StoreFast can't publish.
  • MSIX Packaging Tool. Microsoft's tool, which you install from the Store, repackages an existing .exe or .msi installer as an .msix without your source code. It suits an app you already ship as an installer and don't want to rebuild.
  • The NSIS installer as an EXE app. Reserve the name as an EXE or MSI app, sign the installer with a certificate from a CA in the Microsoft Trusted Root Program and enter a versioned HTTPS URL. Policy 10.2.9 says the installer has to install silently, can't download anything while it runs and can't change after you submit its URL. electron-updater keeps working here, since the Store doesn't update existing users.

If your app is built with Tauri instead, the Tauri guide covers writing the manifest by hand and packing it with MakeAppx.

Who it's for

StoreFast is a good fit if

  • You ship your Electron app to the Store as an .msix and update it often.
  • Your listing has several languages and you want What's new in all of them.
  • You release from GitHub Actions or a coding agent.

Look elsewhere if

  • You submit an .appx, a bundle, or an EXE or MSI installer. EXE and MSI support is coming.
  • Your app isn't in the Store yet. Make the first submission in Partner Center.

Questions

Does electron-builder build MSIX packages?
Its stable appx target builds an .appx, which Partner Center accepts. An msix target that writes .msix, .msixbundle and .msixupload files is in electron-builder 27, which is still in pre-release, and its docs call the target beta.
Do I need a code signing certificate to publish an Electron app to the Microsoft Store?
Not for an MSIX or AppX package. Microsoft re-signs those with its own certificate after the app passes certification. If you submit an EXE or MSI installer instead, you sign it yourself with a certificate from a CA in the Microsoft Trusted Root Program.
Can I keep electron-updater in the Store version?
Not for an MSIX or AppX install. electron-builder's docs say electron-updater doesn't support AppX and that the Microsoft Store handles updates for MSIX. Electron sets process.windowsStore to true when the app runs as an MSIX or AppX package, so you can skip the update check there and keep it for your NSIS build.
Can StoreFast publish my Electron app?
If you ship it as a single .msix, yes, from the second release on. You make the first submission in Partner Center, then publish updates from the dashboard, the GitHub Action, the API or a coding agent. StoreFast doesn't take .appx files, bundles, or EXE and MSI apps yet.

Publish your Electron app's next update

Make your first submission in Partner Center, connect it to StoreFast and drop the next .msix on the page. Try it free for 7 days, no card needed.

Sources

Facts about Microsoft's tools were checked against these pages on October 5, 2026.