So, I have a couple of projects that I have been working on and I am trying to decide if I want to open source them or provide them for free as closed source.

I have never "owned" an open source project before and I would love to hear thoughts on the pros and cons of both options. Any horror stories of deciding on either approach are acceptable too.


The worst thing, that could happen to you if go open source is, that someone forks your code, and creates a project that is more successful. This requires the two of you to have fundamentally different oppinions about where the project should go.
Firstly, this is not much of a risk, and secondly, I think not much is lost, if somebody successfully uses some of your code to achieve something else than you intended. It's what open source is about. Create free code, that somebody else can put to good use.

The worst thing, that could happen to you if you offer a proprietary software for free, is that it becomes popular. You will have a big user base with a lot of wishes and complaints. Even though they didn't pay for your software, they expect support, bug fixes and new features.
That being said, you can still open source it at that point. Or you can try putting a prize tag on it. However this will cause a lot of displeasure among your users and comes with a lot of overhead (accounting, legal stuff, etc.).

The best thing, that could happen to you if you offer a proprietary software for free, is that it becomes popular. Appreciation is basically the ideological reward you're looking for, if you give something away for free. However, it comes with its burdens, as stated in the paragraph above.

The best thing, that could happen to you if you go open source, is that it becomes popular. You have the same ideological reward as with proprietary software, all the while you get the advantages of a successful open source project: user contribution.
And yet, monetizing the project is still an option: support, training, getting paid for features, enterprise licences (open source doesn't need to be gratis).

A likely thing to happen, is that your project doesn't really take of, and only very few people use it. This is the case for the vast majority of software for free, because the least of them are reaching the critical user base for word-of-mouth-propaganda, and even less of them are advertised.

| improve this answer | |
  • forks are expensive - it usually takes quite a bit of effort to get to there, and you end up risking both projects not having critical mass – user1249 Mar 23 '11 at 15:12
  • 1
    "The worst thing, that could happen to you if you offer a proprietary software for free, is that it becomes popular. You will have a big user base with a lot of wishes and complaints. Even though they didn't pay for your software, they expect support, bug fixes and new features." That's what software subscriptions were designed to handle. If one want's support one should be willing to pay for it. – bit-twiddler Mar 23 '11 at 15:18

The big question you have to answer is what you think you gain by protecting them, because the gains from open-sourcing can be numerous.

If the product is good, you will build a community of people willing to maintain it for you. Bugs will be found and fixed before you even run into them yourself.

You can use it to promote yourself when you're looking for a job which actually pays the bills.

In some cases at least, you can sell support and make a really good living off that.

| improve this answer | |
  • 1
    +1: totally true. just a bit over-optimistic, since the vast majority of OSS projects have a userbase of one. still, free-but-closed is very rarely any advantage – Javier Mar 23 '11 at 14:05
  • 3
    @Javier, fair point, but those that fail weren't going to sell either, so there was still no point in keeping it closed – pdr Mar 23 '11 at 14:10
  • Thanks for your perspective. I believe that my concerns are really around the fact that I have no idea what owning an open-source project entails. How do you maintain a standard of quality if the project "takes off" so to speak. – Adam Mar 23 '11 at 18:38

Distributing them as Open Source can have great benefits.

  • Improving software quality: By giving the source code to the community everyone is able to contribute to your project so that your software keeps improving continuously.
  • Better acceptance: People often are rather willing to trust open source software since they can look 'under the hood' to check what's going on there
  • Direct Feedback: You can get direct feedback from the community correcting and improving your work. You can use this to gather further experience
  • Inspiration for others: Interested developers can grab your source and learn from your work.

Furthermore, I don't see any point that should prevent you from publishing your software under an open source license as you want to distribute it for free anyway. So why not releasing it as open source? Are you embarrassed of your own code? ;)

| improve this answer | |
  • No, I'm definitely not embarrassed of my own code. My reservations come from never owning an open source project before and not knowing what that entails. I guess one of my specific concerns is that if anyone can contribute how do you maintain a standard of quality in the source? – Adam Mar 23 '11 at 18:35
  • 1
    @Adam: the usual setting is that you own the project and commit all the changes. Anybody can see the code and contributions mean just that they send code changes to you. You're free to apply, write your own or simply reject the patch. – Javier Mar 24 '11 at 4:04

There are two kinds of Open Source projects:

  • Projects intended for end-users. These require intense nurturing and in that case you would not be in doubt.

  • Projects intended for other developers. These are usually libraries serving a specific purpose, which said developers do not want to do by themselves for any reason what so ever.

I believe your projects to be in the second category. Here I can frankly say that given any two similar projects, both free, but one with source and the other without, I would without a blink take the one with source.

The reason is that I know for a fact that some day I will need to one or more of

  1. circumvent a limitation - "Ah, I can use my class if I make it implement Enumeration()"
  2. figure out how to trigger specific behavior - "If I set THAT variable through reflection this code will be run"
  3. simply fix bugs

In any of these cases, having the source is crucial to success or failure, as this usually is under time pressure.

| improve this answer | |
  • Thanks you provide an interesting perspective. I honestly think I would agree that if I had options of 2 very similar projects I would lean toward the open-source one first. Though I have seen many OSS projects where certain things "lacked" and then decided to weigh non-OSS projects vs the time/effort/cost of modifying source to accomdate a need. – Adam Mar 23 '11 at 18:40
  • @Adam, hence "similar". – user1249 Mar 23 '11 at 18:56

I, for one, support closed-source software. There is nothing wrong with treating software as a product. After all, software is considered to be intellectual property in most jurisdictions; therefore, the creator is entitled to profit from selling it if he/she desires to do so.

Giving a closed-source product away and charging for support is great business model. It is a much better business model than opening the source and charging for support because one is not helping one's competitors.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.