Most Popular Electron UI Libraries

I’m interested in learning Electron so that I can practice writing a cross platform GUI app (something that I have never done). One thing that I was interested in was what libraries others were using to structure their app. In lieu of a recommendation in the Electron’s documentation, I checked out awesome electron, which is a repo keeping tabs on various resources on Electron. One section is a list of open sourced apps, so I took a peek at all of them. Below is a chart of front end libraries used in the apps.

Conjectures

There are a lot of libraries missing from this chart: Ember, riot, Mithril, etc. Even Angular has a poor showing. The only one that occurs frequently is React. Being the most popular library isn’t always the best, but in this case, since Electron is so new, it could provide much needed documentation. React may be the most popular because in 2014, Github announced they were planning on moving Atom to React, only to abandon the effort. Maybe enough people understood that to mean that React is a natural choice for building on Electron. I’m not sure.

Why is “None” so prevalent? I don’t have an explanation for this. If I had to hazard a guess, it is because a lot of the open source projects are small and so a library may be overkill. It would be more interesting to find out what the closed source apps are built with because they appear more complex. I also lumped custom together with none, as to me they are essentially the same. I can’t extract a custom framework for my use.

Reference

I’ve included my data set for future reference. I extracted it all by hand by combing through all the package.json file found in the repos.

  • Atom: custom
  • nuclide: react
  • playback: none
  • friends: virtual-dom
  • kitematic: react
  • monu: ractive
  • screencat: none
  • gulp-app: none
  • imagemin-app: none
  • levelui: none
  • kart: spine
  • vmd: none
  • kyoku: none
  • greader: angular
  • koko: react
  • Snapper: angular
  • Gitify: react
  • Colonizers: none
  • Cumulus: react
  • We: none
  • Piglet: none
  • Yoda: react
  • spark: none
  • Loop Drop: custom
  • Fireball: custom
  • Toby: none
  • Kaku: react
  • yeoman-app: react
  • mojibar: none
  • markn: react
  • Shiba: none
  • Yays: none
  • nuTorrent: react
  • soundcast: none
  • black-screen: react
  • teseve: none
  • caprine: none
  • kakapo: react
  • devdogs: none
  • bloxparty: unknown
  • Trendy: react
  • N1: react
  • google-music-electron: custom
  • Mancy: react
  • Pomodoro: none

Comments: