Electron: State of the Universe
Development

Electron: State of the Universe

A recap of Shelley Vohr's talk about Electron.js at Node Summit 2018

electron
“We’re still pioneers, we’ve barely begun. Our greatest accomplishments cannot be behind us, cause our destiny lies above us.”  
Cooper, Interstellar

Well, maybe the future is not literally above us, but it’s in front of us, and Electron can help us get there.  

We recently attended Shelley Vohr’s Electron: State of the Universe talk at Node Summit 2018, which was of particular interest to us because GitKraken is a cross-platform Git client built with Electron.  Like any inquisitive Kraken, we were interested to find out what Electron has been up to and what they have planned for the future.  

shelley vohr electron.js

What is Electron?

Electron is a distributed, open source, JavaScript framework that embeds Node.js and Chromium, which gives desktop app developers access to features and processes that were previously exclusive to the web.  One of the main benefits for GitKraken (and everyone!) is that Electron is cross-platform; so, it allows apps to reach a wider audience without requiring the development team to maintain multiple applications.  

How Does Electron Manage its Ecosystem?

Shelley’s talk was focused on outlining the processes that the Electron team currently uses in key areas, and showing how they have begun to standardize those processes in order to allow the community to more easily participate and contribute to its development.  

Community Involvement

The success of Electron is due to its diverse community, and the internationalization of its documentation has been a key component to extending the community across the world.  Along with documentation, the Electron team has also started labeling certain issues as “Good First Issues,” which means they’re good ones for community members to tackle to get familiar with the codebase.  Core members of the Electron team will also sometimes pair with a community member to work on issues so they can experience the proper workflow.  

Teamwork and Upgrades

The Electron team is comprised of developers from companies throughout the world, so they operate on a 24-hour development cycle that can make meetings and communication a challenge.  They maintain their own forks of Node and Chromium, therefore, they rely on the Node and Chromium communities to help them anticipate the impact of changes to their forks of those projects.  They work with the Node community to upstream patches, so less maintenance is needed in their fork. And they’ve been able to get their Chromium fork (libchromium content) updated to the point where they are only one release behind the stable version of Chromium.

Support and Feedback

Electron realized that the number of release branches they had made it confusing for community members to know when a particular branch would reach “End of Life,” so they made the decision to support the three most recent release branches.  This makes support more straight-forward and gives developers a better idea of when they need to upgrade to a newer version. They also instituted an “App Feedback Program” for developers that are tracking app metrics. This allows those developers to be able to work with beta versions and provide data to Electron, in order to better identify when a beta version has become stable.  

Roadmapping

In order to curate an accurate roadmap, Electron holds bi-annual summits comprised of core members and the community, where they break out into groups and discuss topics of interest.  The output items that are identified in the group sessions are then turned into actionable goals that can be championed by members of the team or community. Project boards are then used to outline specific tasks and identify blockers.

The Future!

The growth and trajectory of Electron have necessitated the need for better governance over community involvement; so, that will be a focus going forward.  Transparency and communication of meeting notes is something they are also looking to improve, and they are soliciting the community for feedback on how best to handle it.  The release process will also continue to be improved. And as of version 2.0, they are now using semantic versioning, so expect more betas, nightly builds, and a more predictable release schedule.  Lastly, they want to improve the overall security of Electron by moving to a secure-by-default model that will include changes to webview tag, URL handling, navigation, web contents, and permission handling.  
It’s an exciting time to be a member of the Electron ecosystem, and we can’t wait to take advantage of these changes and those yet to come!  If you haven’t seen what Electron can do for a desktop application, be sure to check out GitKraken, our legendary cross-platform Git client!

Stay on the cutting edge of software development by getting innovative tips, trends and stories delivered to your inbox every month!

Agile project management software
Plan, develop, review, and ship fast

Visit Axosoft.com

The downright luxurious Git client
For Windows, Mac & Linux

Visit GitKraken.com