
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.
4 Comments
Very much agree. Passenger’s installation was shockingly well done.
It’s all about the error messages. Passenger tells you what worked and what didn’t pretty clearly. I hate when installers just fail and won’t explain why — or worse: when they don’t even fail, even though something’s broken.
Posted by Brian Flanagan at 9:34 am on 23 April, 2009.
It’s beautiful but I still see the odd person or two still have difficulty with the install. Those people shouldn’t be working with computers though.
I’m quite happy they also have released one for Nginx too……warm fuzzy feelings.
Posted by Jonathan Clarke at 12:19 pm on 23 April, 2009.
I agree - the entire experience of getting Passenger up and running is actually quite pleasant.
And since v2.1.1, the sugarcoated UI no longer takes away the ability to do automated, scripted installations, so you get the best of both worlds.
Posted by Jakob S at 7:49 am on 28 April, 2009.
@Jakob … definitly. I’ve been using Ben Schwartz’s Passenger Stack lately and it’s just a joy to use.
Posted by Paul Campbell at 7:56 am on 28 April, 2009.
2 Trackbacks
[...] Passenger: Command line done right 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. [...]
Posted by almost effortless » Weekly Digest, 5-3-09 at 11:33 pm on 3 May, 2009
[...] Visit link… [...]
Posted by link: Passenger: Command line done right « resonete.org at 2:14 pm on 5 May, 2009