Electron-discussion
Electron
Electron is a modified version of google chromium which integrates Nodejs into the browser. This allows developers to create desktop applications using HTML/CSS/JS and the node APIs.
Examples: - Atom - VS Code - Slack
Pros: - well integrated with OS (file dialogs, recent docs, etc) - functions like a regular desktop application - no need for a backend, all work can be done in the client - cross platform - easy for customers to install and run
Cons: - enormous file size (chrome + V8 at a minimum) - large memory consumption - no access to node for running external process
Local Server
A local server would integrate with the operating system. The server would run in the background and the user would connect with their web browser. This process could be made seamless.
Examples: - Jupyter Notebooks - Remix
Pros: - small file size (use their existing browser) - access to node for running scripts, etc - significantly reduced memory usage.
Cons: - more communication protocols between browser and server - roundabot OS integration. (file system access, etc) - more difficult for customers to install and run
Carlo
Carlo is an experimental project recently released by Google. Rather than installing a copy of chrome for each program, it locates the chrome on the user's system and integreates it with node: https://github.com/GoogleChromeLabs/carlo