We plan to remove the requirement from electron so that we can use the ui in the browser and connect to the backend over websocket.
Then after that step we plan to move away from nodejs and code the backend in rust.
Though there are two parts to the backend:
- websocket rpc api server - communication with core (We also need that project for Delta.chat for kaios, I started working on it at GitHub - Simon-Laux/delta-command-api: Prototype of a websocket/json api in draft/experimenting stage)
- main backend: platform specific setup (tray icon, system notifications, starting browser window with the ui) - if we add a cmd line app it would probably be or communicate with the main backend process, which integrates the websocket rpc api server
Also for reference there are 2 other active desktop client projects:
- dc40 (still uses electron for now to show the window, but both frontend(compiled to wasm) and backend are written in rust and communicate using a state-store that is generated by the backend and displayed by the frontend)
- kdeltachat (native deltachat client written with Qt and KDE’s Kirigami framwork)