<aside> đź“Ł The mentors will not provide draft proposal feedback on any draft emailed on Friday, March 29th or later, as it is too close to the application deadline.

As a reminder, final submissions need to be made to the Google Summer of Code portal rather than directly via email.

</aside>

Introduction

Electron is a framework for building desktop applications using JavaScript, HTML, and CSS. By embedding Chromium and Node.js into its binary, Electron allows you to maintain one JavaScript codebase and create cross-platform apps that work on Windows, macOS, and Linux.

The core code for Electron lives in the electron/electron repository on GitHub, and consists of a JavaScript API layer that interfaces with the native Chromium and Node.js code. Most core Electron development is written in C++, and familiarity with Chromium is a huge help for understanding the codebase. (For a beginner-friendly overview of how the codebase works, check out Charles Kerr - Electron's Codebase for Beginners [CovalenceConf 2020].)

Outside of the core repo, the electron organization on GitHub has dozens of repositories that help keep the lights on, from PR automation bots to the documentation website to platform-specific distribution tooling. Most of these are written in JavaScript and are easier to contribute to for web developers.

For GSoC 2024, the Electron Outreach working group has developed seven project ideas geared towards both C++ and JavaScript developers.

We’re happy to answer questions via email at [email protected]. Please do not email questions to individual mentors, as they may be missed!

Ideas

✍️ Electron Documentation PR Previews

Size: 175 Hours (Medium)

Difficulty: Medium

Tags: JavaScript, Static Site Generators, MDX, Heroku, Automation, GitHub Actions

Scope: Electron maintains its documentation as MDX files in the main electron/electron repository, but the website lives in a separate repo that pulls in the docs as content via webhook.

There’s a disconnect in our system between when docs get merged and when they appear on the website, so it’s easy for formatting issues to appear. This project would aim to create automation tooling that would create an ephemeral Heroku Review App for each PR containing doc changes which previews the website with the changes, and link it as a comment on the PR.

Success Criteria: A successful project will produce documentation PR previews and create a comment on PRs linking that preview.

Skills: