Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: when should and shouldn't you open source a project?
48 points by adrianwaj on April 24, 2011 | hide | past | favorite | 25 comments
I am thinking about open-sourcing a website of mine (or part of it) upon launch.

Alternative question: which Github projects would you work on for around 6 months with no guarantee of payment, and why?

Alternative question 2: what open source projects have you worked on that have had unexpected benefits?

Alternative question 3: what makes an open source project enjoyable to work on?




I've found that open-sourced websites are less helpful to me, as a developer interested in a project. They're just so complicated- there's a lot of institutional knowledge involved in just navigating the project, much less going into the code and learning from it (or using part of it). It works great in the case of "oh, I'm a user and there's a typo or bug here, let me fix it for you".

Rather than open source the entire website, there's a number of companies that open source very specific components of their much larger website. By focusing in on a very specific use case, it's easier to 1) comprehend, as a newcomer, and 2) contribute back to. You're also forced to write the library internally differently since you know it'll be open source and will need to stand on its own (so no hackish, dirty implementations on your own site!) In many cases, this "forced abstraction" makes for much better code for yourself.

I really like the latter approach. It's what GitHub does with Grit or Resque, or Shopify does with active_merchant, or Intridea does with OmniAuth. But note that releasing specific components doesn't prevent you from releasing your whole site as open source, either... you can certainly do both (which may be the best of both worlds!)


Well said.

Another benefit of open sourcing specific modules and libraries is that you can share your complementary code without exposing or commoditizing your core technology. Github is a perfect example of this - they open pieces that are helpful to other developers, but not enough that somebody could clone their site or compete with them.


Along this line of thought, it'd be good to see a permissions feature in Github - some parts of a project are shaded out basically depending on who's viewing.


OP: "It is a Django site using Pinax and GeoDjango. ... simple and edgy design"

Actually, this sort of site it really useful to people, especially if it has a better design than default Pinax.

An unexpected benefit is that if a lot of people use your software, than a small percentage of them might be willing to pay for improvements and support, which you can push back to the core and use to support further development.

This is what is done by Eldarion, the contract shop that includes core Pinax developers. This is also the business model used by Chris Wensel, who developed Cascading.


Rule of thumb : If it makes you money, close source it. Otherwise, open source it.

You only stand to benefit from getting feedback on your code.


There are other benefits that come from building a community around an open source project.

For example: Shopify open-sourced ActiveMerchant, a core component of our product. Even though our competitors use it, we still derive a lot of benefit from the community around it. Many of the gateway implementations that are used in Shopify were written by ActiveMerchant contributors. Every time someone implements a new gateway, we can add it to Shopify in a few minutes.


What is the bar to get a payment processor included into Shopify? Do you test it rigorously or just look at the commit history of the project to see if it's up to snuff?


To get into ActiveMerchant, it has to be clean code with passing unit and remote tests.

We've got pretty much all of the gateways that North American businesses use, so to get a new gateway into Shopify it generally has to service a region that doesn't have good coverage with our current gateways.


I would agree with this, in general. My particular phrasing is to open-source platforms, not products. Platforms are general components with a wide variety of potential uses. Products are applied solutions for specific problems.


The only reason I would not open source my project is the ugly code I wrote.


Thats a reason you should opens source your project. Solicit feedback, and become a better coder...or realize help you to realize that _all_ code is 'ugly'


A question for you then: why do you want to open source this project?


The real question, as Cave Johnson would put it is not "why ?", it's "why not ?".


Because it is a lot of extra work (answer questions, talk on mailing list, write docs, create a website to host it all, ...). If you don't put in the work, I wouldn't even call it open-sourcing, then you're just slapping a license on some code. If you do want to open source it and put in all this work, which you could spend coding instead, then the question becomes what you're hoping to get out of this :)

Knowing why also makes it easier to answer your question.

As for your questions: the most enjoyable open source projects are the ones that provide useful code. Useful to others, that is. Is your code useful to others (like, say, Wordpress)?


It is a Django site using Pinax and GeoDjango. It is hosted on Linode and Github, the code is documented and a lot of time and energy has been put into it. It has a really nice simple and edgy design. Music/touring/concerts/fan-analytics/ticketing is a cool yet highly competitive area, and I don't want to take the conventional startup route. I'm not sure the conventional startup route will work.

I think it could be an interesting way for people to get involved in a startup without the stress.


> I think it could be an interesting way for people to get involved in a startup without the stress.

I think I see where you're going with this. You want to "open source" part of your project to get help, but you want to retain control of the commercial aspect of the project in case "it has commercial possibilities". This is just infantile and demonstrate that you don't understand how open source works.


It'd be more like Red Hat or SugarCRM. Now take your insults and shove 'em.

Correction: even those aren't good analogies because they are self-installed. But open-source and commercial do mix: everyone's in it for a different reason.


> Now take your insults and shove 'em.

Not only infantile, but rude as well. I predict great success for your open source endeavor, not.


As I said, shove 'em where the sun don't don't shine, hypocrite douchebag.


Sorry, I still don't understand. Is it something people will want to install for themselves, wordpress style? Is it something else?


Good question. If it was opened in its entirety then I suppose people could install it for themselves (but I'd prefer not for competitive reasons.) However, it's probably better there be a staging server that anyone can push to, and test on, with final changes then selected for pushing onto the main site, with this ability entrusted to a few people.

So, if it were a Q+A site, then I am creating a Quora rather than say a http://www.question2answer.org/.

If anyone's interested, it uses https://github.com/typeish/django-deploy

Am I just offloading development to other people on their time and dime? - yes, in a sense, but that's not the aim, the aim is to build something that will succeed, and see those that build it be an integral part of that success.

You can redirect to the site here: http://hackerbra.in/bop.html

(note: it is not ready for launch - the database will be filling with venues/artists/tours/shows data, even without any users)


You want others to help you with your commercial project, for free???


it's not commercial, it has commercial possibilities. It's about as commercial as craigslist once was, maybe.


Thanks for posting this.

My partner and I have been thinking of open-sourcing our site Scriblink.com, which is the leading online whiteboard. It's a Java app (how old is that) but still the dominant way people access online whiteboards. We dont care to invest time in it anymore but it brings in some good revenue. Another thought was to donate it to the MIT media lab. Sounds like the general consensus here is that open sourcing isnt really that effective though. Any other thoughts on what we should do?


I open sourced my recent app, multiplayerchess.com (github.com/azer/multiplayerchess.com). I believe that there is no disadvantage of open sourcing the source code of a website or app, with WTF public license.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: