Meet Tarbell

Note: This article was originally published in Source on May 28, 2013.

Newsrooms need sturdy, affordable tools to give stories special treatment on a day-to-day basis. If maintenance requirements are compounded every time an app is released, new apps will tend to be big affairs, created by elite developers. But if you can create apps that are simple and built on static HTML, CSS, and JavaScript, you can afford to fire-and-forget and potentially get a few more folks in the newsroom creating online presentations and telling stories on the web.

A couple of years ago, I would have told you the best option was either a powerful but opinionated (and appropriately boring) CMS like Drupal or a “bespoke” (ahem) app with a database and server infrastructure to run it. That was before I started working at the Chicago Tribune, where Brian Boyer opened my eyes to a different ethos.

One of my first projects for the apps team was Playing with Fire, an award-winning investigation into the role of tobacco and chemical companies in shaping policy mandating ineffective and potentially toxic flame retardants in furniture and clothing. Joe Germuska, Brian, and I built a simple rig based on Flask that reads a Google spreadsheet and provides worksheet values to templates as key -> value pairs.

Google spreadsheets for content management? Ohh-kay Brian, says the person who spent the last four years in the Drupal salt mines where Real Websites are backed by a database, web server, and content management system. I was skeptical.

My skepticism, perhaps a bit of techno-elitism, should have been erased when I had talked with some friends in professional management roles (a lawyer, a product executive for a food company, a call center manager) a few years ago about essential skills for their workers. They all said Excel.

I finally understand why spreadsheets are so important. Spreadsheets are a miracle of computing. They’re the Swiss army knife of data management, a programming language for the rest of us. Collaboratively edited spreadsheets are a miracle of the Internet. Managing content with Google spreadsheets lowers the barrier to entry for participation by using familiar, flexible tools. Nothing we could build would provide a better user experience or more seamlessly integrate editors and content creators.

In the end, my fears were unfounded: Using spreadsheets worked! Editors liked the process, and the project came out fabulously.

During the following months we forked the original Flames code to produce Pension Games and An Empty Desk Epidemic. At that point I was getting tired of maintaining forks of the same codebase. Especially because we felt we could start producing these editorial projects on shorter and shorter timelines and get more folks in the newsroom in the mix. So my apps team colleagues and I began work on Tarbell, software meant to distill the lessons of those editorial projects into a single platform.

To deploy, add your S3 credentials to s3config.py. Now you can deploy it: fab deploy. This command will deploy all your Tarbell projects to the production S3 bucket specified in s3config.py.

Tarbell in the World

Tarbell has been used for 18 projects and counting at the Chicago Tribune and is already being used by Southern California Public Radio. Here are some examples of Tarbell projects:

Projects pages: Southern California Public Radio is using Tarbell to generate their apps page and have helped Tarbell improve rapidly since our first open source announcement.

Election widgets and results: During the last Illinois elections we used Tarbell to manage data and presentation. A small team of reporters entered election result data into the Google spreadsheet. We set up a cron job to republish the Tarbell site every two minutes. Because Tarbell also publishes a JSON representation of the Google spreadsheet, we were able to create a widget that simply polled for new data every couple of minutes. The results page and widget were viewed by more people than voted in the election itself.

Long-form storytelling: Tarbell is a great platform for rich, long-form publishing. Hadiya’s Friends and His Saving Grace use custom processors to pull data from the Chicago Tribune CMS and significantly upgrade the online presentation using carefully crafted CSS and JavaScript.

Graphics: The Tribune graphics department has used Tarbell (with minimal intervention from the apps team) to develop infographics about the conversion of Chicago’s United Center from ice rink to basketball court (Game Changers), and a deep dive into problems with Boeing’s Dreamliner airplane (Boeing’s Bumpy Ride). These are “just” mobile-friendly translations of print graphics. They are also amongst our most successful and popular projects.

Timelines and galleries:Chicago Gunrunning uses Tarbell to create a series of slides, dramatizing a real case in which guns were moved from a gun show in Indianapolis to Chicago. That project came about after I was approached by a reporter and asked her to put her data into a Google spreadsheet just so I could see. I quickly realized once I saw the data that we could set up a Tarbell project and create a slideshow out of the data. This project became the basis of a new tool to routinely generate these map + text slideshows. We named it TACO after folks in the newsroom kept asking about the “taco tool” used create Kevin Pang’s Fox Valley Taco Tour.

What’s Next?

We had our first official release the other day, version 1.0 beta-1.

During the next two weeks, the Tribune apps team will be deploying the new open source template to people on the graphics desk. We’re planning on a second beta release in mid-June with expanded documentation and a smoother authentication workflow. We hope to have a release candidate or final release by mid-July with more flexible deployment options and better code testing.

We’re happy to hear your thoughts about using and improving Tarbell, so drop us a line at newsapps@tribune.com.