I’m finding this post difficult to write. Not because I’m having internal conflicts, but rather because I
know that this will cause some tension among Bamboo users. Please read to the end before you jump to any conclusions. Here’s the “executive summary” if you’re just wanting to skip to it.
Punchline: I’m thinking of doing away with the GPL as the license I distribute BambooInvoice under. By way of explanation, here’s a bit of history.
Around February of this year, a CodeIgniter user contacted me privately to point out that someone was re-distributing BambooInvoice as their own work. I’m not going to use any names or URLs (no point in adding any publicity to them), but they essentially called it “their business”-Invoice. So they offered it for download under a different name, and claimed it was their invoicing software. They offered a “demo” (identical in every way to Bamboo) and it was apparent to me that all they really did was a giant search and replace of the word “Bamboo” with “their business”. No credit to me. No mention of Bamboo, no CodeIgniter license (that was visible), nothing - just a wholesale search and replace. I note with some amusement that they didn’t even bother changing my lame jokes or my less-then-creative writing… but they did take the time to remove my name and replace it with theirs (nice work jackass). I sent them an email asking them to take it down or at least credit Bamboo, but got no response. About 3 days later, the site dropped off the face of the earth, and its been a non-issue for me since.
More recently, a loyal Bamboo user (and it turns out a good guy) was unhappy with the lack of a specific feature in Bamboo, so he implemented it himself. So far, so good - in fact, I actively encouraged this. I should point out at this point that he was very transparent about it, and I even offered advice on what he would need to change, and we exchanged several emails. At the end of it, he had done a considerable amount of work, and he then re-branded it and released it as a competing product. Again, search and replace of BambooInvoice. While he couldn’t have known it at the time, what was going through my head was “here we go again”. Now to be fair, this one had a happy ending. I opted to build in the functionality he was seeking, and he’s since stopped offering the competing forked code, become a great community contributor.
But the experience of thinking someone had co-opted my work, twice, has led me to want to change the license - and the main underlying reason is that I don’t like the idea of anyone being able to fork BambooInvoice. Yeah, its probably an ego thing, but one could go so far as to say that the GPL in the case of Bamboo actually causes less freedom then I want with it - for example, I believe it would be legal under the GPL for a developer to take the code of Bamboo, re-brand it to BamfooInvoice, rewrite all the content to say that they are developing Bamfoo, and remove all references to me, and put it online and offer it as a hosted service; never making the “guts” available to the people who are using it. And even if they are making the code available, I find it somehow distasteful that they won’t necessarily be offering their users the latest code.
My goal with BambooInvoice has always been to offer a freely available, code-viewable piece of high-quality CodeIgniter software. It currently represents about a year and a half worth of on and off work, and frankly, I like that I get a large measure of control over the code that I wrote. But let me be clear: I have no objection to people changing the code on their installations, and I have no objection to people pulling it apart, sewing it back together, and then taking it apart again. I have no objection to people using it personally or for business, and even removing the BambooInvoice “brand” for the purpose of sending invoices to their clients. In fact, the more people who are using it, the happier I am. Here are the attributes that are important to me in a license:
- As a user of BambooInvoice, the code should always be fully available and not obfuscated
- As a user of BambooInvoice, you should always have complete and unfettered freedom to change anything within the system
- I want the code to continue to be “out there” to be used as a learning base for CodeIgniter, or for programming in general
- I want it to always be branded “BambooInvoice” when people are passing it around, or talking about it, but I also want people to know that they can change anything they want about it on their personal setups.
Basically, I want to keep “ownership” of BambooInvoice, but provide people with the freedom to do anything they want with it on their individual setups.
Yes, I know that the code that is currently out there, is “out there” under a GPL license. I wouldn’t want it any other way, but for future versions of Bamboo, I’m leaning towards a license that is more inline with my goals.
So where do I go from here? I’m not sure. Firstly, I need a new license to release under. I don’t want to write my own (ugh, legalese). I’m thinking about one of the Creative Commons licenses, or perhaps another open source license. I’d really welcome feedback in this area.
I’m also looking for personal feedback from Bamboo users. Does this upset you, or does it empower you to know that there is a committed author behind the product who wants it to be the best possible. Will this impact on your choice to use Bamboo? Are you supportive? Opposed? If you don’t want to post to the blog, just write me privately.