 Hi everyone. Welcome to the first day of OpenJS World. I'm so excited to have the chance to meet all of you virtually over the next few days and I'm very excited to be one of the folks kicking us off on Tuesday morning. So thank you all for your time and for virtually allowing me and the other speakers into your homes. So my name is Keeley Hammond. I'm a senior software engineer at Envision and a member of the Electron Core Governance team. I'm going to be speaking today on behalf of Electron. We joined the OpenJS Foundation last year as an incubation project and what I'm going to talk about today is the growth that we've made as part of joining OpenJS and how we're hoping to become more involved with the larger JavaScript community. But before I dive in I just want to stop and say thank you to the entire Electron team. So these are photos from our maintainer summits over the past three or four years and they represent not only the Electron Core team which is a fairly small team but also the wide network of contributors and maintainers from companies all over the world. So I want to thank that larger maintainer network but I also want to give a special shout out to the Electron Core team. They've done a tremendous amount of work over the past year and I'm very excited and honored to be representing them today. So some of you may be familiar with Electron already and some of you may even develop an Electron already but for those of you who aren't familiar with who we are, Electron is a JavaScript framework for creating desktop applications with web technologies. And to dive a little bit deeper into what that means, Electron is ultimately a combination of three major subdependencies. The first is Chromium which gives us everything we need to render HTML, JavaScript and CSS. The second is Node and Nodes via Runtime which I suspect many of you in the audience are quite familiar with. And then we have a layer of C++ and Objective C and that layer implements the APIs that you as a developer need to build a native application. So for example, if you want your Electron app to interact with a native window object or if you wanted to send native notifications, together these three dependencies form the foundation of Electron. You may already be using Electron in your day-to-day life. For example, if you were using Slack to collaborate with your colleagues or if you're using VS Code as your IDE. My own team at InVision is building an app called InVision Studio which is built on Electron. And there are a lot of reasons for a developer to choose Electron for their project but some of the primary ones that we hear are cross-platform support. So instead of having to support multiple native teams, you can just write one Electron app that works on Mac Windows and Linux out of the box. You have access to both web and native APIs and you also have access to the larger JavaScript ecosystem which will help you with things like supporting an auto update server or packaging and distributing your app. Finally, we've been experiencing rapid growth in the project itself. As more and more developers are choosing to use Electron, we on the Electron team are trying to respond to that growth. And as part of that, in 2019, we joined the OpenJS Foundation as an incubation project. And since then, we've done quite a lot to improve the developer experience both as someone who is writing an Electron app and as somebody who wants to contribute back to the Electron project. Some of the major changes that came as part of our OpenJS incubation period were a formal governance structure. So in March of 2019, we established a governance structure that covers several key areas you can see here, as well as an administrative working group that oversees the project as a whole. We've also made a large investment into automation. As many of you who work in OpenSource can probably sympathize with, people are our most constrained resource. And so whenever we can free up a developer by having a computer do the work instead, we try to do that. We've made investments specifically into automating our nightly and beta builds and improving our distributed build system so that developers have a much easier time developing quickly. We've also built out our CICD pipeline to include more coverage for Mac, Windows, and Linux. And I finally want to give a shout out to core member Shelly Vor. So Electron now supports multiple major release lines. And Shelly wrote two bots that help with maintaining that. The first is TROP, which automates backporting PRs to various versions. So for example, if I've submitted a PR for Electron 10, TROP will automatically backport that to Electron 9 and so on. And the second bot is Unreleased, which audits branches that are targeted for specific release lines. And it checks specifically for branches that either haven't been merged yet or need to be manually backported. Both TROP and Unreleased have saved us a lot of time. And if you are an open source maintainer that's running multiple release lines, I highly recommend talking to Shelly. She is an expert in this area. We've also made a lot of improvements to Electron's core APIs. This is by no means a comprehensive list, but some of the highlights include the introduction of a new module called ContextBridge. And this is something that we're hoping to use as we depreciate our remote module to give developers a safer way to communicate across contexts. We also made improvements to how we send complex JavaScript objects across IPC. We're now using V8 structured clone algorithm. And we've been actively modernizing our APIs. A big example of that is converting our internal APIs to return promises rather than using callbacks. But I would say arguably the largest change that we made in the incubation period happened in May of 2019. So we changed our release cadence to match more closely with Chromium's. Chromium releases once every six weeks. And Electron now releases a new major version roughly every 12 weeks. And the result of that is that consumers that are building Electron apps now have access to newer versions of Chromium faster. So as we were making these changes, we were also continuously moving through the OpenJS Foundation's incubation program. And I'm very excited to announce today that Electron has graduated from the incubation program and is now an OpenJS impact project. And we're very excited about this for a lot of reasons. But chief among them is we wanted to take a bigger part in the larger JavaScript community. The JavaScript ecosystem is so interconnected. Many of our own maintainers contribute to other projects such as Node. And as Electron continued to grow, we wanted to be intentional about giving back to that rich ecosystem and also inviting some of you all into the Electron community if you'd like to join us. So in that spirit, if you're interested in getting more involved in Electron or learning a bit more about the project, we would love to have you. We've made a concentrated effort in the last year or so to make it easier for new contributors to jump in and start contributing PRs to the project. We've done this through a series of contributor training events such as this one we held in January of 2020. And we've also improved Electron's build tools creating an easy set of scripts for new contributors to use to clone down Electron locally and start developing. And I want to give a special shout out here to four members of the core team, Shelley Vor, Sam Adderd, Charles Kerr, and John Klein-Smith. The four of them recognize this as a considerable hurdle for new contributors last fall and work together to put these build tools together. And if you'd like to learn more about Electron, but you don't quite feel like jumping into the core project yet, Electron Fiddle is a great way to start exploring what you can do in Electron. This is an easy quick start template that lets you choose from various versions of Electron, write your code, write an editor, and easily publish to a gist with a click of a button. So if any of you are interested in Electron, I would love to talk to you over the course of the conference. And I also included some links and resources that you might find helpful in this link. So if you visit bit.ly slash Electron hyphen open JS, you can see an easy list of resources to start jumping in. In conclusion, I am very excited about everything that Electron has accomplished over the past year. And I know that we're all excited to join you as an impact project within the foundation. Thank you so much, everyone. I hope you enjoy the rest of the conference. Have a good one.