Of the multiple hundreds of thousands of open source projects on Source Forge, the vast numerical majority is small projects run by one or two persons. This interview with Bricolage founder David Wheeler is one of a series of interviews of small projects which have contributed mightily to the richness of open source.
Bricolage is an open source content management system (CMS) that runs such prominent sites as Macworld and the World Health Organization. Mad Penguin™ wanted to know how David Wheeler, who is also the Founder of Kineticode, the commercial support business for Bricolage, managed to pack so much punch with such a small hammer. We met up with him at the recent Open Source Business Conference in San Francisco, where he was on a panel with Brian Behlendorf (Apache), Josh Berkus (PostgreSQL), Chris Hofmann (Mozilla) and Larry Wall (Perl).
As I was transcribing this interview, it occurred to me that Bricolage is an example of the power of an open source project to survive its proprietary origins. As you will read below, Bricolage was originally started in-house by Salon magazine, and then open sourced by About.com. I imagined how very frustrated David Wheeler, a Salon employee, would have been had he been forced to watch the code he helped develop just die on the shelf. Never underestimate the strength of the human passion to create, and to see one's creations bloom in the light of day.
Mad Penguin: Hi David, could you please introduce yourself for our readers?
David Wheeler: Hi, my name is David Wheeler, and I'm the lead developer and maintainer of the Bricolage content management system, and I'm also the President of Kineticode, a company that sells services and support for Bricolage.
MP: Tell us a little bit about the history Bricolage. It's sort of the mouse that roared.
DW: The project didn't start out as small as it is now. It originally was a project internal to Salon.com. They had wanted to capitalize on the content management stuff that they had created to produce Salon. I was an employee at Salon, and we were working to create a product, but that didn't work out. About.com picked up the software, and I worked with them to create Bricolage 1.0. At that point, they decided to open source it. I volunteered to be the maintainer, and I've been running with it ever since.
I founded Kineticode a few months after that, selling consulting, software training, and support. About.com hasn't contributed much in a few years, and so it's pretty much been us for the last three years or so. Over that time, we've seen massive improvements in performance and usability and overall effectiveness. It's worked out really well.
We've been very fortunate in some of the customers we've had, and some of the people who aren't our customers who use Bricolage. So we've had really significant organizations like Macworld Magazine, the World Health Organization, Portugal Telecom - all of them running their sites with Bricolage. Most recently, we've been working with Vibe and Spin magazines in New York City on their sites, and it's really been going great.
But it is still considered a small project, not because of the size of the code base or because of its power. eWeek rated us above Vignette in its (eWeek's) review. But other than the articles in eWeek, the exposure's really been rather limited.
MP: What's your current relationship with About.com? Are you totally out on your own?
DW: We're completely out on our own. They went off and did their own entirely different thing, more or less. About.com has done almost nothing with Bricolage in three years, so we've been doing all of the development and working with our customers to add new features.
About.com open sourced it, they put it under the BSD license, I ran with the maintenance. I worked with them for a year. Their developers added some features that they needed, and then they started doing their own thing, and I continued to develop Bricolage. About.com has been supportive of that, but they've pretty much stayed out of it. So Bricolage is pretty much entirely Kineticode's product now. I've probably had my hands on 80% of the code personally. And that more or less summarizes the history for the past three and a half years or so.
MP: What is the next big project for Bricolage?
DW: One of the nice things about Bricolage and the way that Kineticode has worked with our customers has been that a lot of them have suggested features. They say, “wouldn't it be great if Bricolage had 'X, Y or Z' as a feature, and we'd be willing to fund the development of that feature.” We've been able to work with customers in such a way that they agree to contribute the code that they've funded back to the project. It essentially becomes sponsored development to add new features.
The great thing about this is that they get the functionality that they need, but they don't have to worry about maintaining patches every time there's an upgrade, and they don't have to worry about getting involved in something that's not their core competency. The feature just becomes part of the project, so the next major upgrade, their feature is just there, everyone else gets the benefit, and the customer gets the benefits from everyone else contributing code.
So most recently what's happening is that one of our customers really wants to do templating in Bricolage in PHP. Bricolage is written in Perl, and currently supports three templating architectures—the templating being the simple code that you write to format your content for output. It can run on HTML mason, HTML template, and Template Toolkit, all three being Perl-based templating architectures. So it's currently an all Perl product.
One of our customers said, “our developers really want to be able to use PHP. We're willing to fund development of PHP templating.” So I'm working closely with some really talented developers from the PHP community, and we're starting a project called “PHP Sandwich” that will be hosted on Perl.org, and that will allow a PHP interpreter to be loaded inside of Perl, so Perl can load a PHP interpreter and dispatch to it. Unlike the current Perl implementation of the PHP interpreter, this PHP interpreter will be able to reach back into Perl space to get access to data that has been loaded in Perl, to be able to use modules that have been loaded into Perl, and that sort of thing.
So we're calling it “PHP Sandwich” as a working title because PHP is sort of sandwiched between Perl loading it and reaches back into Perl. And one of the really cool side benefits is that it will be an independent project. It will run in Perl and mod_perl , but then the PHP community will be able to use any CPAN module they want, which means that immediately they get a huge library of a variety of different qualities of code. This is beneficial for Bricolage, because then we be able to integrate into Bricolage a new templating architecture for PHP. This means that template developers can write templates in PHP, which is actually a very natural language for writing web templates. And it will all run within the Perl interpreter. There's no hanky panky, you know, dispatch going on behind the scenes, it's all running as one deal. So that'll be really cool.
And it'll also help to bring a lot more interest in Bricolage from the PHP community, which probably isn't really even familiar with Bricolage at this point. This new feature will also hopefully create more dialog between the two communities, which will be really be valuable to open source overall.
MP: You're a small shop, and yet very successful. What tips can you share with other small projects about the business and community building aspects of running a small open source project of Bricolage's scope?
DW: That's a pretty broad question. On the one hand, we had significant success in attracting pretty well-known organizations, for example, The RAND Corporation, in addition to the others that I mentioned earlier. These people come to us, in part, because we developed Bricolage to be able to scale to meet the needs of large organizations.
So from the very beginning, we had an idea of the importance of being able to scale to meet very large needs. I think a lot of open source projects are about someone scratching an itch, but we definitely had a very definite product in mind, and therefore, a market.
In addition, we designed Bricolage so that it would be easy to use. A lot of open source projects that I've used have been fun for me to explore, but I'm a geek, and I'm not going to give those applications to my grandmother or mother to use. We tried to create an interface that is relatively easy to use for people whose job it is to create content day in and day out, who don't need to worry about any of the nitty gritty. Yet, we also provide the power and flexibility for the more technically savvy people to be able to go in and administer the entire application, so that they create all of the objects that they need to allow all the editors and writers to more easily do their jobs. And all within a browser-based interface!
People will always say, Bricolage is difficult to install, which I will grant is true. But there is a great deal of power to be gained from it. You can manage pretty much any website with Bricolage, and we're working to make installation easier in upcoming versions.
MP: Easy-to-use interfaces are one of the complaints that historically have been leveled at open source projects. It would seem that open source is turning the corner on this issue, and Bricolage is an example of that progression.
DW: I hope so. There's a lot more to be done. It's an easy to use interface, but that doesn't mean it's user friendly. It's still web forms, which means filling out web fields to create content, which isn't conducive to the editorial process. But we started out with a goal of making it easy to use for someone who just needs to get their job done.