Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm stating to work on a project that I intend to release as open source via the githubs. What are the advantages of putting the code on github from the outset, as opposed to waiting until the project is in a working state before publishing.

If it matters, this particular project is a C# app/service, and I have only a free github account (so I can't make it private and then pull back the covers later)

share|improve this question
+1 for "the githubs" – SomeKittens Sep 21 '12 at 23:21
You can make it private with a free account if you use BitBucket instead... – Timwi Oct 8 '12 at 7:14
up vote 10 down vote accepted

The quicker you make your code publicly available, the quicker you can gain feedback and people to help you. If your intention is to make the project open source from the beginning, then I would recommend starting your project out as public by default.

Github is full of small and unfinished projects so your project should fit right in. The more details you put in the readme file the better as it will help other developers/consumers get up to speed on your project quickly.

At the very least, your private projects should be under some sort of version control. If you don't want to pay for a service, then I'd recommend using Dropbox to back up your private local repositories. This way you have file backup and version control on your project which will save you from hours of pain in the future.

share|improve this answer
I completely agree but, just to be clear for readers unfamiliar with github, putting something on github does not automatically guarantee others will use and review the code (with the possible exception of those following the author). The author still needs to reach out to interested parties – akton Sep 22 '12 at 11:49
good point, @akton, and if/when the project gets to that stage I'll definitely have to evangelize it. I'm not really sure yet whether it'll be of much utility to others. – cori Sep 22 '12 at 12:49
Re: "If you don't want to pay for a service", BitBucket gives your free private repositories. – codesparkle Sep 22 '12 at 13:56
Dropbox, really? I think that Bitbucket might be a better choice (GIT is now supported) – Andrea Sep 22 '12 at 16:33
mixing github and Dropbox can be disastrous (from personal experience) so be warned. I created a Dropnot folder for my git-github managed projects. – Michael Durrant Oct 7 '12 at 23:46

There are no disadvantages. As long as you have a readme file that clearly states the project is in flux nobody will hold it against you if you make breaking changes as the project progresses.

share|improve this answer

There is if you want free private repositories using git, and when you're done you can turn it public.

share|improve this answer
I do have a bitbucket account, for which I highly appreciate the private buckets, but github is still the gold standard for public open-source project, it seems to me... – cori Sep 22 '12 at 12:48
Why the edit? As far as I know it's incorrect - BitBucket allows git repos. – cori Oct 8 '12 at 15:04

Short Answer: You may still host it freely in Github without any issues.

Your advantage would be getting feedback of users and interested developers who might wanna join your team, provide helpful idea and move this project forward.

However, to avoid most dis-advantages, it will make sense to write a Note mentioning that project is till in development phase. And what features are expected to be functional on initial Beta release.

share|improve this answer

I say why not have the best of both worlds.

The nice thing about git and decentralized source control in general is you don't have to stick to one host. You could make a private bitbucket repo and a public github repo. Right now push your changes to the private repo, and when your project is more complete(or reaches a milestone) you can push to the public repo... and you can later make the private repo public and have a presence on both Bitbucket and Github

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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