Skip to content

Support Matrix

This page is the support reference for the frontron CLI/runtime package.

Use it after generating a starter with create-frontron, or when retrofitting a compatible existing web app with frontron init.

The goal here is simple: show which desktop surfaces frontron owns for you, which ones it exposes as normal config, and which ones still stay guarded.

1. Normal frontron.config.ts surface

These are the normal desktop settings most starter-based or retrofitted apps can rely on:

AreaMain fieldsNotes
App metadataapp.name, app.id, app.icon, app.description, app.author, app.copyrightDesktop app identity
Web wiringweb.dev.command, web.dev.url, web.build.command, web.build.outDirAdd these when inference is not enough
Build policybuild.outputDir, build.artifactName, build.publish, build.asar, build.compression, build.files, build.extraResources, build.extraFilesCommon packaged-app decisions
Platform packagingbuild.windows.*, build.nsis.*, build.mac.*, build.linux.*Normal platform packaging choices
File associationsbuild.fileAssociations[]Packaged document/file registration
Window configwindows.* common window fieldsStarter/manual apps share this same window config entrypoint
Safe runtime tuningwindows.*.zoomFactor, windows.*.sandbox, windows.*.spellcheck, windows.*.webSecuritySmall safe subset only
Updatesupdates.enabled, updates.provider, updates.url, updates.checkOnLaunchDeliberately small support slice
Deep linksdeepLinks.enabled, deepLinks.name, deepLinks.schemesRegisters schemes and captures incoming URLs
Security policysecurity.externalNavigation, security.newWindowExternal navigation policy only
App-layer modulesbridge, menu, tray, hooks, rustConfigured from frontron/, but still runtime-owned by frontron

2. Guarded advanced-only fields

Use these only when the normal starter/manual config surface is not enough:

SurfaceIntended useStill blocked
build.advanced.electronBuilderLast-mile packaging exceptionsFrontron-owned paths, package entry wiring, typed packaging fields, raw protocols, raw fileAssociations
windows.*.advancedLast-mile BrowserWindow exceptionswebPreferences, icon wiring, typed window fields

advanced is a best-effort escape hatch, not the main product path.

Prefer the typed build.* and windows.* fields first.

3. Runtime-owned closed fields

These stay intentionally closed because frontron owns runtime wiring, preload wiring, staging, and packaging:

Closed areaWhy it stays closed
preload pathFrontron owns preload wiring
contextIsolationFrontron keeps the bridge security boundary stable
nodeIntegrationFrontron keeps renderer security defaults stable
Raw session / partitionStill outside the typed surface
Staged app paths and generated runtime layoutFrontron owns build staging
Template-level Electron core logiccreate-frontron stays a template generator, not the runtime owner
window.electron style renderer globalsPublic renderer contract stays frontron/client only

4. Frontend stack support matrix

Current practical support for starter projects and compatible retrofits looks like this:

StackDev inferenceBuild inferenceNotes
ViteYesYesBest-supported path and the default starter shape
React with ViteYesYesSame Vite path
Vue with ViteYesYesSame Vite path
VitePressYesYesdocs:dev / docs:build style support
AstroYesYesStatic output path support
Angular CLIYesYesCurrent Angular dist/<app>/browser output support
Next.jsYesConditionalBuild support is for static export flows
NuxtYesConditionalBuild support is for generate / prerender flows
Monorepo custom appSometimesSometimesUsually needs explicit web.dev / web.build
Wrapper scriptsSometimesSometimesPrefer explicit web.* when inference is unclear

5. When to stop relying on inference

Add explicit web.dev and web.build when:

  • your project uses wrapper scripts like turbo run dev --filter web
  • multiple frontend apps live in one repo
  • your static output path is not obvious
  • your team wants fully explicit desktop wiring

If you started from create-frontron, you can usually stay on the inferred path for a while.

If you are retrofitting an existing frontend and are unsure, run:

bash
npx frontron check

Then move to the recipes page for a concrete stack setup.

Released under the MIT License.