Electron onboarding

Today I spent my first half hour looking into Electron, the GUI toolkit behind Atom, Slack, and a bunch of other things. I started with this video:

It’s basically a very high level, marketing-ish overview, but it tells you the main idea: That in Electron you can use HTML/CSS/Javascript as well as Node.js to build a GUI application, and the operating system integration stuff is handled for you.

OK, cool, so what’s next? Download a Quick Start boilerplate repository that lays out window in Electron with some “Hello World” HTML rendered within it. I’m glad this exists: it worked on the first try for me, and saved some of the guess work of getting the right files and dependencies in place.

From there, you’re supposed to download another application that teaches you Electron’s APIs and is supposed to (I guess?) help you get started on using the boilerplate code to build your first application.

This is the first page of that API demo app:

screen-shot-2016-10-15-at-9-14-39-am

I have no doubts that this demo app will be useful, but the question is, is this a great onboarding process? It’s clear that considerable effort went into it, but who was the target audience? It seems there is a missing piece here.

Most people–even very experienced programmers–want to see what can be built with a tool before they learn its inner workings (such as item number two on the list here which the slightly unsettling “handling window crashes and hangs”)

So I was pretty surprised that with language like “It’s easier than you’d think” and a polished marketing video, that the on ramp didn’t lead in with something like a mini-text editor, or an address book application, or a tiny chat tool, etc.

I’ve certainly been guilty of this sort of thing in my own projects.But here’s hoping I’ll take a more human-centric approach towards onboarding people in the future, because “how to handle window crashes” is not what I’d want to know about Electron on a first run through, and if it’s the first thing I need to know, well… that’s a sign of a deeper problem.

This is less of a criticism of Electron and more some ruminations on things related to #HumanizeTheCraft. I will do what I always do at this point with open source projects, muddle through, ask around, and tinker until I can actually start learning the tool.

But if we want to make development tools genuinely more accessible, we’ll need to do better than this.