Small, powerful, beautiful (choose any three)

We love music. We love Plex. We thought we might combine those passions.

It all started over a beer — as most great things do — re-envisioning what a tiny and powerful music player might look like in 2017. The most classic and beloved small audio player, Winamp, was first released almost exactly TWENTY years ago. Written in a low-level language, it ran on Windows, and was limited to playing files on the local (or networked) filesystem.

It truly whipped the llama’s ass

Plex, on the other hand, provides a best-in-class client/server model, an extremely metadata rich library, is highly portable, and gives you access to your entire music collection from anywhere in the world; we wanted to pair this with a similarly excellent music player. Literally the only requirement we had was “small”; Plex has plenty of bigger apps already, but nothing that sits unobtrusively on a desktop, beguiling and delighting. We even forced ourselves to limit the design to a single simple window.

We quickly settled on Electron as a platform to build the app. The combination of ES7, Electron, React, and MobX quickly became an incredibly productive (and fun!) set of technologies to use. As for the actual audio player, we wanted to do things which weren’t easy or even possible with Web Audio, so we picked a feature rich, portable, open source audio player called Music Player Daemon (MPD).

It’s either amazing or crazy (probably a bit of both) that the app comprises multiple Electron processes, a player server process (for being remotely controlled), and the MPD player process, while managing to present a semblance of a whole. And ignoring the fact that it’s probably the smallest Plex player (by pixel size), it still has rich functionality!