I recently completed Electron, v3 by Steve Kinney on Frontend Masters. It’s about 4 hours long. I would call it a “kick the tires” course.

You use two prebuilt applications. The first is a markdown editor. You can write markdown in one pane, it converts to HTML behind the scenes, and displays the result in the next pane. You can open and save markdown files, and export the converted HTML.

You don’t spend time on the markdown to HTML conversion or the UI; that’s completed or handled by third-party libraries. This section of the course focuses on wiring the UI to the Electron filesystem API’s and relevant processes, such as saving and opening files from the filesystem, how you could track and handle unsaved changes, and how to edit the native application menu options.

The second app is called “Clipmaster” and I’m not sure I ever really understood it, other than that there’s some interaction with your clipboard. This section of the course includes some native related topics that felt “fancier,” like customizing the application window bar, reading and writing to the clipboard, creating custom keyboard shortcuts, triggering notifications, and making the application render as if it were a menubar application. The UI is also written in React, so there’s a brief discussion of staring a project with React and Electron. Obviously the wiring of the Electron main process to the UI or renderer processes addresses wiring to a React application, at least at a minimal level.

There was actually a third application, but I didn’t download it and don’t remember what it was. You don’t really use it. I don’t actually remember Steve Kinney running it, but I assume he does and then has a short rant about persisting data (e.g. SQLite and other data storage options) and then about Electron performance.

My biggest complaint with the course centers around my feeling that the rants on performance and data storage are too short. I don’t feel like I picked up much ancillary knowledge, or first-hand tips from an Electron developer. You don’t walk through setting up a project or discussing the ecosystem and resources or references. You don’t discuss deployment.

My second biggest complaint is that little time is spent discussing what you’re about to do in the course before you do it. I don’t feel like I had much of an overview. It was easy to get lost following along, just making sure that what I typed matched what Steve Kinney was typing.

As an aside, I found GitHub Copilot to be very annoying. Steve Kinney frequently accepted suggestions from Copilot and then waffled about trying to clean it up. Copilot commonly gave me suggestions with inverted conditional logic from what it gave Steve Kinney or just weird stuff that slowed down the experience of typing along.

The biggest pro of the course is that I feel like I have an understanding of the “flow” of an Electron app, like I could jump into an existing app and would have a head start in debugging it or tearing it apart. It’s also nice to have the main two apps for reference — the markdown editor is kind of a cool little app by itself, and the clipmaster application shows React and Electron working together. That said, understanding the flow or high level architecure of an Electron app is probably what I would have gotten out of whatever the “Hello World” application is in the documentation.