6 ms·
Ask HN: when should and shouldn't you open source a project?
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?
- holman 16y agoI'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!)
- freerobby 16y agoWell 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.
- adrianwaj 16y agoAlong 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.
- petervandijck 16y agoA question for you then: why do you want to open source this project?
- norswap 16y agoThe real question, as Cave Johnson would put it is not "why ?", it's "why not ?".
- petervandijck 16y agoBecause 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)?
- adrianwaj 16y agoIt 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.
- petervandijck 16y agoSorry, I still don't understand. Is it something people will want to install for themselves, wordpress style? Is it something else?
- wsxiaoys 16y agoThe only reason I would not open source my project is the ugly code I wrote.
- thinkbohemian 16y agoThats 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'
- lefstathiou 16y agoThanks 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?
- aantix 16y agoRule 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.
- deleted 16y ago[deleted]
- Titanous 16y agoThere 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.
- weaksauce 16y agoWhat 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?
- Titanous 16y agoTo 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.
- Twisol 16y agoI 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.
- bravura 16y agoOP: "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.
- diamondhead 16y agoI 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.