I had a chance to dabble with Electron for an internal project where I work, and it turned into one of those experiences that teaches more than expected.
The application used React for the interface and a C project for the backend. That mix was interesting because the UI could move at the pace of a modern web app, while the backend stayed close to the lower-level code that already made sense for the problem.
The part I enjoyed most was learning how the pieces connect. A desktop app is not only the screens people click through. It also has to know where its backend lives, how to start it, how to talk to it, how to package it, and how to make the whole thing feel like one application instead of two projects taped together.
That meant spending time with the build and release side of Electron. I learned how to compile the application and produce installers for different platforms, including AppImage, deb, rpm, and Windows exe installers. I also learned about creating a standalone portable Windows build, which made me think more carefully about where files live and what assumptions an app makes once it leaves the development machine.
The Windows side was especially useful. I had to change the C project so it could be built as an exe, then make the main Electron application use that executable as part of its workflow. That gave me a better appreciation for the boundary between a user-facing desktop shell and the system-level work happening behind it.
Electron gets criticized for being heavy, and sometimes that criticism is fair. But for this kind of internal tool, it made a lot of practical sense. React made the interface approachable, the C backend kept the important existing logic usable, and Electron gave us a way to package the whole thing into something people could actually install and run.
The experience made desktop development feel less mysterious. It was not just about writing UI or compiling native code. It was about learning the full path from source code to something usable on another machine.