DEV Community

Jonathan P
Jonathan P

Posted on

What are good reasons to open source your project?

I've been thinking about open sourcing some of my side projects, and was wondering how to approach this.

I don't think that open sourcing is necessarily a good way to gain traction, as it's not much easier to gain users on GitHub than on the web in general.

And it seems like you're giving up the chances of making profit from the product.

Has anyone faced a similar dilemma?
How do you decide?

Top comments (7)

Collapse
 
christopheek profile image
Christophe N. El-Khoury

"And it seems like you're giving up the chances of making profit from the product" is not necessarily true. There are numerous ways of making profit from a certain product. One of these ways is making it exclusive to you and only you.

Open Sourcing a project is probably a good way to gain traction and start building a name for yourself. First off, it would help you show-case your expertise and experience and compare those against other developers in the same field.

There's no unanimous choice. It's more of a weighing your pro's and con's for the whole thing. If you've got more specific questions I'd be more than happy to answer.

Collapse
 
codemouse92 profile image
Jason C. McDonald

I strongly recommend you read "The Cathedral and the Bazaar" by Eric S. Raymond, which answers all of your questions. (The question of economics particularly is addressed in the chapter/essay entitled "The Magic Cauldron")

catb.org/esr/writings/cathedral-ba...

Collapse
 
johnnymakestuff profile image
Jonathan P

Thanks Jason I'll have a look at it.

Collapse
 
idanarye profile image
Idan Arye

Since you are worried about "giving up the chances of making profit from the product" I'm assuming profit is not a primary goal, but due to a if you're good at something, never do it for free mentality you think "I already go through the trouble of developing this, so why not sell it and earn some money while I'm at it?"

The thing is - selling your software is not that easy:

  • You need to set up a secure payment channel.
  • You need to understand and deal with various laws, that vary from country to country (I assume you want to sell your software worldwide? If not, you need to put region limits...)
  • You become liable for the software you sell.
  • You need to make sure it works on different machines (can't have someone pay for it just to discover it doesn't work on their machine)
  • If you want other developers to contribute, you'll need to pay them.
  • etc.? Maybe someone who tried it could add more bullets...

And even if you invest time and money doing all that - you still need to get customers to buy your product. It needs to be considerably better (or have good marketing) than the free alternatives, with enough margins to convince the customers to deal with the bureaucracy of the payment and managing the licenses (if they want to install it on multiple machines), and if your software is a component in the customers' software they need to deal with the license's terms for redistribution...

Meanwhile, if you go open source:

  • You don't have to do much extra work - just write a readme and proper documentation and it's ready for other people to use it.
  • You don't need that much marketing - just write a post and people will check it out themselves.
  • Other developers may contribute code for free, just because there is a feature they need. You may find out that feature is useful to you too!
  • If there is a serious bug you somehow missed, the users will not demand you fix it immediately or they sue - instead they'll write a bug report in your issue tracker.
  • You just need to make it work for you on your own machines, and if someone else wants it to work on their own setup they'll do the work themselves, and maybe even send a pull request with the changes to the code required to make it work and/or changes to the documentation explaining how to make it work.
  • And of course - there is that warm fuzzy feeling that you are a contributing member of the open source community.

Now, I'm not saying that you should never earn money for your work - but if you do, you need to plan it in advance, know what the risks and costs are, and have a business plan. Don't just reserve the option to do so without considering the cost of using that option.

Collapse
 
johnnymakestuff profile image
Jonathan P

Thanks Idan that's a great list, I actually didn't give the legal issues much thought. Although this is an issue mainly for B2B software I'd assume? If I'm making a B2C app I don't think there's much liability is there?

Collapse
 
idanarye profile image
Idan Arye

I don't have actual experience in this (I learn from others' experience) and I'm not a lawyer, but I find it hard to believe the law explicitly gives businesses better terms than it gives customers. Businesses do, however, have lawyers that can go through the contract and the leverage to demand changes in it, so they can probably get to put more liability on you.

At any rate, you'd want to consult a lawyer to determine what exactly your liabilities are and how you can get better terms. And lawyers cost money. With open source, you can just pick one of the standard licenses and you are pretty much settled.