Case Study: How Small Business PrintedArt Uses Linux and Open Source

139

Sure, Linux is great for big organizations like Google, Facebook, and others, but what about small business? Take a look at PrintedArt. Founded in 2010, PrintedArt is an online shop that sells limited-editions of fine art photography. It now has three full-time and three part-time employees and eight sales representatives. According to President and CEO Klaus Sonnenleiter, Linux and open source play a number of roles in the company’s success.

“We started with CentOS initially and our Web service is still run by CentOS,” Sonnenleiter explains. “Our internal infrastructure is mostly Ubuntu server.” He says the company is considering moving its Web server to Ubuntu, too, to simplify maintenance.

PrintedArt.com is a Drupal site, but Sonnenleiter says that several other content management systems were also evaluated. “Before settling on Drupal, we went through a major evaluation shoot-out between the different CMS options,” he explains. “After looking at a fairly large number of options, Joomla, Drupal, Alfresco and Typo3 became the ‘finalists’.”

Drupal came out on top because of its layered API that lets PrintedArt plug into any place of the event model and create their own integrations and modules. “Aside from our own modules, we use mostly a standard line-up of relatively popular modules,” Sonnenleiter says. Image modules, including ImageAPI and ImageCache, are particularly important for the PrintedArt.com site, as are Views and the Taxonomy modules. Ubercart, the free, open source e-commerce shopping cart module, is also a core part of the PrintedArt system.

Sonnenleiter says that in most cases the company creates their own modules rather than customizing existing code, with the exception of attribute-based pricing in Ubercart. “In its current form, it is limited to substitutions and additions, which are typical for product attributes that cover minor tweaks to a product,” he explains. “For our model, we needed more complex price formulas that support prices being recalculated based on a dynamically generated item size in combination with the material chosen by the customer. There is unfortunately no clean way to plug into an API for this, so we reluctantly chose instead to create a patch that we apply to each new release of the uc_attribute module.”

Using Git for Drupal Deployment

With limited resources, PrintedArt’s complex Drupal infrastructure can present maintenance challenges. “We needed to choose between investing far more than we were comfortable with into day-to-day IT infrastructure work, or setting up a system that is rigid enough to allow a simple process without limiting us too much,” Sonnenleiter says. “We found a good compromise through the use of Git as our deployment tool.”

Although it might not be the original use case for Git, using it as a distributed repository for everything – including code, metadata, and files needed for the system to work – provides the fix PrintedArt needed.

“We maintain dev, staging, test, and deployment branches of the entire system, and thus we are able to bootstrap a fresh system within less than half an hour – whether it is for testing new functionality, verifying that no regression has occurred, or for disaster recovery,” Sonnenleiter explains.

In addition to free and open source solutions, PrintedArt does use some commercial tools, too, such as page layout tools. “We use Apple’s iWork suite of office products and we use a fairly large number of image manipulation tools, including open source and commercial applications – Lightroom, iPhoto, Pixelmator, HDR Darkroom, GIMP, HQPhotoEnlarger, and many more,” Sonnenleiter notes. He says that the right tool is determined on a case by case basis, with functionality as the first factor followed by maintenance cost. “Purchase price is really a very minor factor in the cost of maintenance,” he says.

ImageMagick produces all our image derivative formats,” Sonnenleiter says. “We do not publish the original hi-res formats of the images in the collection. Instead, we create resized derivatives using ImageMagick. The same process works when sending images – collection images or customer-supplied ones – into production. ImageMagick creates the file with the proper size and density for the print process from the original we have on file or that was submitted with a print order.”

Open source even runs the phone system at PrintedArt, which uses Asterisk as their voice response unit that routes calls. “Since most of our extensions are remote, we allow all our sales agents to connect via SIP from their extension or to have incoming calls routed to their cell phones,” Sonnenleiter says. “Voice mails are automatically copied to email, and we also use the Asterisk conferencing capabilities as our call bridge.”

Linux by Proxy

And then, of course, there’s Google, which runs PrintedArt’s email, calendar, and other office infrastructure. “In addition, we use Capsule running as a Google App as our CRM,” Sonnenleiter adds. “We also use MailChimp as a Google app, and we are evaluating Producteev as our project and todo-list manager.”

Open source gives PrintedArt the advantage of being able to customize things the way the company needs them, Sonnenleiter explains. “It’s not a way to get cheap software, since the purchase price is almost always a very minor factor in the cost of running a complex software system,” he says.

The hidden cost of maintaining the system and making sure it runs correctly is a bigger issue for the company. “Asterisk, for example, has run in my basement for many years without creating any maintenance overhead, whereas any of the phone systems I have used in the past all needed constant attention.” The fact that Asterisk is also open source and available without an initial investment just makes it even more appealing.