The beautiful thing about building websites is that the browser is pretty much a big canvas where you can do whatever the hell you want. The biggest paradigm to overcome was matching a native-like feel using web technology. From there, we used shelljs or the child.spawn API to spin up the project’s local development server, and we were off.
The Appīecause we’re using Electron, we can use Node’s awesome FS and path APIs! We used those APIs to figure out if there’s a package.json file in the project and then parsed that file for a start npm script.
We also used Webpack to bundle those components while also letting us use ES6 via Babel. We created a few React components to flesh out the app and went from there. We love React, and it was a great fit for the structure of our app (which is really just a bunch of application states). That’s “native” in quotes because the app is really a web app running in a packaged version of Chrome, but it’s fast enough-and most computers are fast enough-that it works.Įlectron has been pretty widely adopted Slack’s apps are based on it, as is Microsoft’s new Visual Studio. Electron uses the Chromium project to enable developers to use HTML, CSS, and JS to create “native” apps. ElectronĮlectron is a framework Github built when they were creating their text editor, Atom. With the power of Electron and React, we were able to rapidly spin up an actual working app that does just this. We have often thought it would be great to have something like Codekit that wraps our Gulp, Grunt, or npm script-based projects. We love our build tools at Sparkbox, but this means our tools are often changing and require a certain level of technical knowledge to use.