GitHub has replaced its native implementation of macOS and Windows version with an all new client. The engineering team behind the code repository platform has rewritten the previous clients using on-ramp JavaScript framework Electron.
Electron is popular for building desktop apps using web technologies. It uses web technologies like JavaScript, HTML and CSS to deliver a native app experience across multiple platforms.
GitHub’s engineers decided to leverage Electron to rewrite the desktop client for macOS and Windows. Prior to opting Electron, the team of four native GitHub developers explored various known codebase technologies.
However, the latest development has emerged as the way to let GitHub share the logic and UI across all platforms using a single code-base. The code-build-run cycle has also come down from minutes to seconds.
Reason behind the revamp
GitHub decided to rewrite its desktop version to reduce the dependencies and to maintain parity across the codebase. “To maintain parity across the codebases, we had to implement and design the same features twice,” write GitHub engineers William Shepherd, Josh Abernathy, Markus Olsson and Markus Olsson in a joint post.
“If we ever wanted to add Linux support, we’d have to do it all a third time. All this meant we had twice the work, twice the bugs, and far less time to build new features.”
Challenge in building two product from one solution
The prime challenge that the engineers faced in the development process was finding an accurate development to implement, debug and maintain two apps based on two different technology stacks after rewriting the clients. Electron emerged as the one-stop solution.
“Companies like Google, Microsoft, and Facebook, not to mention GitHub, are investing incredible amounts of time, money, and engineering effort in the web as a platform. With Electron, we leverage that investment,” the engineering team explained.
You can experience the new addition by downloading the GitHub Desktop Beta from its official site. A window is also available to receive feedback directly from the web presence.