

Ask HN: when should and shouldn't you open source a project? - adrianwaj

I am thinking about open-sourcing a website of mine (or part of it) upon launch.<p>Alternative question: which Github projects would you work on for around 6 months with no guarantee of payment, and why?<p>Alternative question 2: what open source projects have you worked on that have had unexpected benefits?<p>Alternative question 3: what makes an open source project enjoyable to work on?
======
holman
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!)

~~~
freerobby
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.

~~~
adrianwaj
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.

------
bravura
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.

------
aantix
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.

~~~
Titanous
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.

~~~
weaksauce
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?

~~~
Titanous
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.

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

~~~
thinkbohemian
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'

------
lefstathiou
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?

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

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

~~~
petervandijck
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)?

~~~
adrianwaj
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.

~~~
sovande
> 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.

~~~
adrianwaj
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.

~~~
sovande
> Now take your insults and shove 'em.

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

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

------
diamondhead
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.

