Passenger: Command line done right

We rely on Phusion Passenger for our application deployment. Passenger is fast becoming the de-facto way to host Ruby on Rails apps. One of the reasons for this is their attention to detail. Passenger is installed via the command line. Command line installation isn’t normally the most glamourous in terms of usability and experience. The Phusion guys, however, have nailed it.
Reassurance in a black & white world
There’s an argument that if you’re using the command line, you must be super-familiar with commands, practices, compiling etc. But it doesn’t have to be that way. The Phusion guys give you the benefit of the doubt. Even as someone with many years of experience and comfort in the command line, it’s so refreshing to see an installer that assures me “Don’t worry if anything goes wrong. This installer will advise you on how to solve any problems.” It feels good.
Error messages: a human approach
One of the major bug-bears of installing software from the command line, particularly when there is compiling needed, is dependencies. Often a library is not available. With Passenger, it’s no different. Passenger requires Apache to be installed amongst some others. But just look what happens if one of those libraries aren’t available:

Through smart use of colour and some intelligent awareness on a system level, the installer tells you not only what libraries are missing, but just what commands are needed to install them. Salvation is just a cut and paste away. Also note the use of colour. My eyes are drawn away from the names of the software I already have installed and straight to the issues I need to resolve.
Fluff-free next steps
The highlight of the Passenger installation process is the sign off message once the installation is complete. Firstly, it gives you a confirmation message “The Apache 2 module was successfully installed.” Next, it gives you the lines you need to install the module.

Once installation is complete, you get a simple example to get you up and running, along with a link to the user guide and official website. The whole experience is painless, and where pain could creep in, it’s been mitigated by helpful suggestions and friendly language.

Attention to detail
What’s really great about Passenger is that the attention to detail doesn’t end at the installer. The Linux process list is a list of programs that are currently running. Usually, programs are shown in this list by their command line name, often an indecipherable mix of letters and numbers. Passenger processes are easy to spot and easy to understand. Human readable names in a machine-centred interface.
Here are some things to consider, inspired by the Passenger installer, if you find yourself building for a system where you don’t have the privileges of a graphical user interface:
- Well chosen, helpful, friendly language
- Intelligent error detection and useful suggestions
- Colour and highlighting to emphasise important things
- Simple, clear direction to next steps
- Keeping things human-readable
Good user interface doesn’t have to stop on the desktop or on the web. The Phusion Passenger guys have shown that you can give people that warm and fuzzy feeling on the command line too.