Open Source vs. Closed Source
Consider this a sidebar to my ongoing series on Building a Web Application. A user commented that he thought "it should be an open source effort so [he’s] not going to help." Which was a really intriguing comment because I hadn't said either way whether it would be open source or not.
I certainly understand how the person could have felt the implication of it being closed-source application. I hope to one day make money off this. Don't we all? But wanting to sell it as a service or a product doesn’t necessary mean going closed-source. The two aren't at separate ends of the spectrum.
So, the question is, should I develop this application to be open-source or closed-source?
That user’s comment is definitely case in point. Some people will respect you for keeping a watchful eye on your code (and ultimately, your desire to make money) but go open-source and everybody is on your side.
This is a mild advantage of an open model. People are much more willing to devote their time for the ‘greater good’ of an open-source project. But with thousands of projects already on the go, what will get people excited and involved in your project? I’m certainly not the juggernaut organization like Mozilla but as I get further along in the project, it wouldn’t surprise me if the occasional person wished to contribute to the effort.
The argument goes that an open-source application will ultimately be more secure than a closed-source application because more people can review the code. They keyword here is can. Any project with the same number of people doing code review, whether it’s open or closed, will find approximately the same number of bugs and security issues. Going back to my last point, going open-source could make it easier to find additional resources to make the application more secure.
This is where things get tricky. With closed-source, I can run it as a service or sell it as a product. I can also leverage both and generate sales through support and add-ons, as well. With open-source, I can still go service or product but why would somebody pay for it when they can download and run the application for free? The only business model left is that of support and add-ons.
Ultimately, that may be enough. Various companies are proving that they can build a solid business around just support and add-ons.
A little of this, a little of that
One of the ideas that I’ve been mulling over is a combination of the two. Where the CMS framework would be developed as open-source but the interface and modules that go on top of it would be closed-source. In that way, people can leverage the framework to build CMS’s of their own with functionality and a user interface that could vary wildly from my own. Each could co-exist or compete within the market.
What are your recommendations (and provide arguments for your position)?
Read the next installment, Prototyping.
I'm facing a curious situation right now. I'm the maintainer and main developer of PHPReports (http://phpreports.sf.net), provided as a GPL software.
A lot of people use it for free, but some asks me "hey, I'd like to use your software on a proprietary app I have here". I'm asking GNU people now what they think about it.
The two options I have is:
1 - Let them use it but provide the sources as-is with their proprietary, compiled code.
2 - Make it a "dual-licence" stuff and asking people who wants to compile it inside their applications to pay me some money for that.
For me, both are good. Of course if it gives me some money, I'll be happy too. :-)
But my advice if you have some doubts is: if you want some money from it, but there is no urgency, make the thing open and wait to see what happens. :-)
I'd be really wary of starting something as GPL and then later down the line trying to make money off the code itself (support, add-ons are fine).
Reason being that many people may have helped with the code and if you suddenly try and cash in on it they won't appreciate it.
Make it clear from the start what your plans are to be and then people can decide up front.
As for whether this should be CS or OS I don't really know. But I will say that OS seems a better choice seeing as this whole blog is an open dialogue on creating a web-app. Maybe the OS license would be free for personal use but not for commercial use.
Well, I think if you are coming at the Closed vs. Open from a business perspective, you need to make some projections on what the different options will cost.
Here are some ideas, use or reject them as you see fit.
Marketing, letting people know about your software. Pretty much you need to rely on word of mouth on this one. So which model gets more and better free press?
Development: in developing the initial app, you'll probably do most of the work yourself, so you don't get anything free there. You can't really get contributors to an open source project until there is some working code.
Sales: How many copies of shrink-wrapped/pay-for-download software would you imagine you will sell. Will you provide support for those who paid? How? How many copies can you support without adding staff etc. With Open Source, generally you'll only provide free community based support, and charge for personal support.
Is your project a product, or a platform. Most CMS need customization. That is just the way it is and I don't forsee it changing anytime soon. This is definitely a working model for Open Source web app platforms (although I can't imagine why you want to create yet another one!)
I'll read the rest of the posts but if you actually want to make money you can take any of the existing CMS web app platforms and start customizing it for clients today.
Dave: you make some great points. Be sure to read the idea. The goal is to develop a CMS service with the ability to sell it as a product.
You're definitely right in questioning why I'm building Yet Another CMS. And I certainly questioned myself on the matter as well. I decided to start from scratch because I feel that there is still a demand for a usable, yet powerful, CMS. Veen's recent article is proof of this. I'll be talking more about technology choices and "reinventing the wheel" in the future where I'll try and touch on this very point.
My approach is little of this, little of that. Build CMS core under GNU/GPL, then modules/plugins/addons either under GPL or commercial....
krang is an open source perl cms framework that you can build modules on top of. it's geared more towards news article layouts + publishing workflow, but can be used as a standard cms as well.
I think it would be cool to have a really well done open source CMS.
When I think about telling my federal government boss that we should implement this open source CMS, I wonder if he'd would look down on it due to it's open source-ness..
Refer to the paper Setting Up Shop: The Business of Open-Source Software for a good objective discussion on the pro's and con's of various open-source buisiness models.
Could CMS be developed as open-source under an MPL-like license which would allow it's developer to retain the right to use it for commercial purposes using a "service enabler" buisiness model by charging a monthly subscription fee to end users? The developer profits appropriately while still benefiting the open-source community.
I am just reading through this series of articles now (a few months after they were originally written) so my comments may be a bit late or dealt with in later articles. Nevertheless, for the readers of these articles, showing the code you use along the way may be beneficial to the readers but at the same time, it "closes" the "closed-source" door to a certain extent. Either way, I think that I will learn a lot from snook's writings as I am thinking of embarking on a web application project of my own and it looks like snook's writings will help me solidify the concept.
According to my experience open source solution like TYPO3 CMS exceed in ROI and quality most commercial CMS's. So if anyone looking for high quality and customizable open soruce CMS check out www.typo3.com.