# D18. Desktop app: Electron, one engine, React (6 Oct 2026)

Electron rather than Tauri: the canvas must render slides with the engine that `elabora fit`, captures and tests measure (Chromium; Tauri uses WebKit on macOS), the core runs on Node, and Electron's Node runs the `elabora` command for testers who have no Node. One engine process holds the project in memory and is the only writer while the app is open; the CLI and MCP keep working on the same folder. The UI is React with fine-grained subscriptions; the canvas is the player in an iframe. Milestone 1 has no accounts, no hosting and no provided AI: « Demander à l'IA » opens Claude Desktop (`claude://cowork/new` or `claude://code/new` with the folder) or the Codex app (`codex://threads/new` with the path), or copies the request.
*Revisit if:* the app's memory footprint becomes a problem on testers' machines.
