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?
| Tool | What it writes | Status |
|---|---|---|
| electron-builder appx target | .appx | Stable |
| electron-builder msix target | .msix, .msixbundle, .msixupload | Beta, in electron-builder 27 pre-releases |
| Electron Forge MSIX maker | .msix | Experimental since Forge 7.10 |
| electron-windows-msix | .msix | The module behind the Forge maker |
| electron-windows-store | .appx | In Electron's Windows Store guide, last released in 2018 |
| MSIX Packaging Tool | .msix | Converts 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?
| Feature | MSIX or AppX package | NSIS EXE installer |
|---|---|---|
| Code signing certificate | Not neededMicrosoft re-signs it | Requiredfrom a Trusted Root Program CA |
| Hosting | Microsoft | Your versioned HTTPS URL |
| Partner Center product type | MSIX or PWA app | EXE or MSI app |
| Updates for existing users | The Store | Your in-app updater |
| electron-updater | No | Yes |
| Updates through StoreFast | Yessingle .msix | Nocoming |
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
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
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 AppFor 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 AppPut 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
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
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
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
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/*.msixThe 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.
- electron-builder: AppX
- electron-builder: MSIX
- Electron: Windows Store guide
- Electron: process.windowsStore
- Electron Forge: MSIX maker
- electron-windows-msix
- MSIX Packaging Tool overview
- Reserve your MSIX app’s name
- View app identity details
- App package requirements
- Create an app submission
- App capability declarations
- Publish an update to your MSI/EXE app
- Microsoft Store policies