name, category, public, database, hosting_hints, audit_stack, plugins
name
category
public
database
hosting_hints
audit_stack
plugins
desktop-electron
desktop
false
optional
github-releases
autoupdate-servers
mac-app-store
microsoft-store
snap-store
aur
analyze
code-clean
cso
design-review
perf
a11y
doc
context7
ui-ux-pro-max
gstack
yes
yes
optional
Desktop Electron
Application desktop basée sur Electron (Chromium + Node.js). Distribution binaires pour macOS / Windows / Linux.
Detection signals
Strong signals (× 3)
DEP: package.json contient "electron"
STRING_IN_FILE: tout .js/.ts du projet contient "app.whenReady()" OR "new BrowserWindow(" OR "require('electron')" OR "import .* from 'electron'"
FILE: electron-builder.json OR electron-builder.yml OR forge.config.js OR forge.config.ts
Medium signals (× 2)
DEP: "electron-builder" OR "@electron-forge/cli"
DIR: src/main/ (main process) AND src/renderer/ (renderer)
FILE: main.js OR main.ts OR src/main/index.ts (main process entry)
FILE: preload.js OR src/preload/index.ts
Weak signals (× 1)
DIR: build/ avec icons (icon.icns, icon.ico, icon.png)
DEP: "electron-updater"
DEP: "electron-store"
FILE: .env.production avec vars Electron
Composition overlays
Tauri (NOT Electron but similar archetype) : DEP @tauri-apps/* ET src-tauri/ — à traiter avec archétype desktop-tauri (à créer plus tard)
Frontend framework inside renderer : React / Vue / Svelte detected → noter
Implications
Distribution : GitHub Releases, autoupdate servers, Mac App Store, Microsoft Store, Snap Store, AUR
Base de données : OPTIONNELLE — souvent SQLite via better-sqlite3 ou electron-store (JSON)
SEO/GEO : N/A (app native desktop)
Surface sécurité : CRITIQUE — accès file system, shell, nodeIntegration si mal config = RCE
UI/UX : CRITIQUE — conventions desktop par OS
Typical pain points
nodeIntegration: true et contextIsolation: false dans BrowserWindow → XSS = exécution code natif arbitraire
contextBridge non utilisé (preload expose Node API brut au renderer)
webSecurity: false (CORS désactivé dans renderer — risque énorme)
Secrets / API keys dans le bundle (déchiffrable par n'importe quel user — asar non chiffré)
URL chargée remote dans BrowserWindow → MITM sur un site compromis = RCE
Pas de code signing (macOS Gatekeeper / Windows SmartScreen avertissements)
Pas d'autoupdate (electron-updater) → users bloqués sur vieilles versions faillibles
Electron version obsolète (updates mensuelles critiques)
Shell IPC non validé (renderer peut exécuter commandes shell via ipcMain mal filtré)
navigator.userAgent leak (app detectable, fingerprint)
Menu context / clipboard : permissions non gérées
Deep links (app://) non validés → phishing
Accessibilité OS : ARIA ignoré, screen readers non testés
Taille du bundle énorme (Chromium = 150-200MB)
Performances : main process bloqué par ops synchrones (fs sync dans main)
Memory leaks : BrowserWindows non fermés, event listeners non cleanup
Pas de crash reporting natif (electron-log, Sentry Electron)
Pas de tests E2E (Spectron déprécié, Playwright Electron recommandé)
Interview questions (adaptive)
En plus du set minimum business :
Framework build : electron-builder / electron-forge / autre ?
Frontend dans renderer : React / Vue / Svelte / vanilla / autre ?
IPC : ipcMain+ipcRenderer directs / contextBridge secure / @electron/remote (déprécié) ?
BrowserWindow config : nodeIntegration / contextIsolation / sandbox / webSecurity ?
Auth : OAuth desktop / tokens locaux / SSO entreprise ?
Stockage : electron-store / SQLite (better-sqlite3) / IndexedDB / file system direct / cloud ?
Code signing : macOS (Developer ID + notarization) / Windows (EV Cert) / aucun ?
Autoupdate : electron-updater / custom / aucun ?
Distribution : GitHub Releases / Homebrew Cask / MS Store / Mac App Store / autre ?
OS cibles : macOS min / Windows min / Linux distros ?
Architecture : x64 / arm64 / universal2 (macOS) ?
Electron version + cycle d'upgrade ?
Crash reporting : Sentry Electron / electron-log / aucun ?
Analytics : respecte RGPD (opt-in, désactivable) ?
Tests : unit + Playwright Electron ?
CI/CD : builds multi-OS (GitHub Actions matrix / CircleCI) ?
Deep links / protocol handlers registered ?
App menu + accelerators ?
Accessibilité OS native testée ?
Plugin recommendations
context7 : ON — Electron évolue vite (mensuel), breaking changes fréquents
ui-ux-pro-max : ON
gstack : OPTIONAL — Playwright peut tester le renderer
Example project layout