Why I've built an alternative to Github
blog.codeplane.com
blog.codeplane.com
These projects are mainly side projects, or small freelance jobs I've done through the years, and I want to save them for posterity; who knows when I'll need them, right?
My solution to this problem is called tar. Just clone the Git repos to /tmp, tar up the results, and push the tarball to S3. Done. Archived for posterity for a few cents per month.
This isn't SVN anymore: It doesn't take special voodoo to host a repo. If nobody needs to push or pull from a repo, tar it up and archive it. If one person needs to push and pull from a repo, store it on that person's local hard drive (with backups, of course). If two people need to push and pull from a repo... Well, this is no longer an archive for posterity, this is an active project, and can the team really not afford to pay Github something like $5 per month per repo?
This is the OP's complaint: once you're over 20 private repositories, you're paying $100/month. He wants stupid-simple, hosted, private git repositories, and lots of them. He probably ran a bunch of numbers on servers, storage, and bandwidth, and found that he run a simple, low-cost hosted git solution (without all the fancy web features) at a fraction the cost.
There was an opportunity in the market to make a simple, low-cost competitor to github, and he built it. Kudos.
Also, Github doesn't require you to know how to use tar, S3, or have any other Linux experience. So why should this particular use case? Why wouldn't a business be able to cater to that market?
This is a business, and as such, should be measured as one. Why are we criticizing the "technical necessity" of the product? Are we under the impression that HN is the target audience?
You don't need tar to package a git versioned project.
All you need is some kind of zip program, and every major OS has one built in.
The difference knowledge it requires to just zip up a directory and send it in an email, versus running a github connection is so minimal its laughable that anyone suggests that you need some kind of web interface in order to unburden yourself.
> This is a business, and as such, should be measured as one.
I think that this is a solution chasing a problem. However, lets assume that it is a viable business.
The beauty of github was ease of sharing, and the web interface. If you take away the web interface and don't need to share then what's the value proposition here?
All you're getting out of this project is backups of your local git repo. And you know what.... tar is pretty damn competitive when it comes to that arena.
Saving it to S3 is an option, but then you have to create that account too. Why shouldn't you be able to just use one account?
It's online and active, but its a CLI only.
To match the functionality of Codespace, you don't need anything as inelegant as S3. If you have a dropbox account, you basically have the same functionality as Codespace offers. And its free.
And as a bonus, you can store other things in dropbox apart from your git repos.
Looking at Codespace, its targeting a space below Github that's already massively serviced by other simpler competition.
Edit:
Let me add. Before using Github, I personally would just open a network drive to my webhost, and save things on there. It was cheap. It was CLI. And as a benefit I could save other things apart from my code there.
There is a big difference.
This thread (and hence the comment) was about archiving a repository, not about merging it.
If you want to collaborate with this setup, you would need to create a system-level account for every collaborator on your VPS (ugly) or install something like gitolite (https://github.com/sitaramc/gitolite).
The downside to gitolite is then you are running your own VPS, i.e. are responsible for security, updates, config, etc. It seems codeplane takes care of all the nonsense for you so you can get on with your real project.
As someone who had to set up gitolite because of this exact need, I can attest to the need for a service like codeplane.
"I also wanted to do almost everything from my terminal, so I built a CLI, that you can use to manage repositories, public keys and collaborators. For daily usage, you probably won't have to go to our web interface ever again, and that's awesome!"
And I think "that's what I have with Gitosis on my VPS" (Gitosis uses git to manage user accounts and keys, so it pretty much doesn't get simpler than that). Companies pay for Github for the tools, developers who use CLI are probably not that interested in forking $9 a month for something they already have. Just my two cents, but I wish you the best of luck :)
What might be even more useful and cheaper would be a reverse proxy service that allows you to share your local repo on the public internet. Like showoff.io for git.
The repo limit on github does seem a little bit silly. Limit by disk space makes much more sense.
Same situation: I want private repo's. Past that, the only other thing I really want is not to have to worry about ANYTHING. It needs to be secure, backed-up, and quick, without me ever having to give it a 2nd thought.
For that, I'm happy to pay this small fee.
Maybe for hackers like us... ;)
I could do it in ~5 minutes.
I could hack up an MVP of the features that Github has that I care about in maybe a weekend.
That said, I do use and love Github, but I use it for the network effects and general slickness.
If I need a private repo, I get off my fat ass and deploy it in less time than it takes to enter my billing address.
Switching to Hg was a bit of work, but I've actually learned to like it more than Git. Really though, it's the same kind of thing and I just use both. So I ended up at bitbucket for the same reasons OP built a new site.
My way was quicker though.
I understand that bzr and hg are almost identical, command-wise, but hg is about as fast as git, is that correct? What my workflow consists of is diffs/statuses/commits/pushes/pulls in projects with working trees of a few MB at most.
Git is a great tool for what it was built for and the group of users it was intended for--that is, rapid, tons-of-merges-and-pulls development on a gigantic codebase, for users for whom it is acceptable for man pages to serve as reminders rather than instructions. However, I appreciate the additional attention paid to tooling and user-friendliness in Mercurial-land that make it more pleasant for me to use.
Hg is slower overall, but scales just as well as git. A huge repo will still be just slightly slower in hg than in git.
I use bitbucket, too, because of the unlimited private repositories.
[1]: http://hg-git.github.com/ [2]: http://traviscline.com/blog/2010/04/27/using-hg-git-to-work-...
I've done this for myself with a $48/year VPS from prgmr.com specifically because I needed more private repos than Github could offer (my setup instructions are here: https://gist.github.com/1035834).
Granted, if codeplane.com existed six months ago I probably wouldn't have bothered with gitolite. It appears they do nice things for you like backups.
Gitosis does not have as fine grained control as gitolite nor is it as well documented (config file errors are hard to debug), but it works well within its limitations. Both are now available as Debian/Ubuntu packages (gitolite was not when I started using gitosis). The other obvious difference is that gitolite is written in Perl and gitosis is written in Python. This should be a superficial difference, but sometimes the world isn't rational.
Gitolite on the otherhand is under active development, the documentation is great, and the author is generally available on the #git channel as are many other active users of the software.
It's rather easy to set it up (as the comments here suggest), but seems like a lot of folks wouldn't want to go into trouble of learning about it and/or setting it all up properly, or don't have a server to put it on.
This is also a good opportunity to practice startup launching. Identify your target clients, where they are, what they are looking for, etc. Create a landing page with MVP offer description and subscription for availability notification. Check patio11's advices on optimizing the landing page. Then spread the word. The subscription feedback should give you a traction feedback. This should be enough to deduce the fee to reach break even as you launch. Assume only a percentage of subscribers will make the jump. If you can break even with only 10% subscribers adopting it, then things are sound.
http://www.exratione.com/2011/03/setting-up-an-access-contro...
Since I maintain my own sites anyway, keeping as many private repositories as I want is basically free once this is set up.
sudo aptitude install gitoliteI have 100+ private repositories,with about 100 collaborators(many are my clients) and consume just 2.3 gb and pay 100$/month, about 15-20 of the projects are live/active, others are projects which have been delivered or on hold.
Organization as a concept was brought pretty recently on github, my account dates 2008, charging double for just that is not attractive.
I love github, they are coming with awesome features, but in terms of certain features many service firms need, a way to archive the project not counting them for active projects. github is lacking. instead of doubling the service plan every 6-9 months I am willing to give the competing git hosting services a try
Just wish Github would revise their pricing to support peeps like us, I hate to use different interfaces. May choose to just archive things to codeplane until then, keeping things we are actively developing on github.
Also, they offer git, mercurial and SVN.
To save my repos "for posterity" on Github without incurring a $100/month bill, I simply create a master repo (say old-projects/) with all my unused repos in it.
On the other hand CodePlane seems to be a great solution for collaborative work on lots of private repos. This can save big bucks.
I love to see projects like this. I hope it gains some traction and forces Github to change their business model to a more manageable per-GB price.
I believe this is the kind of problem that CodePlane solves. And I agree with you that its great to see projects like this present competition and make GitHub better in the long run.
If a project becomes active again, simply take it out of the master repo and push it as a new repo.
It's really not that bad. But then again, things change if you have collaborators...
Its like a ford salesman asking you about how you plan on using your ford focus, oh you will be driving to work? Highway driving costs you 50% extra. Sorry. You can take our back-alley car for cheap though.
as arturadib mentioned, you can make the "old-projects" repo. But that's just a hack/workaround for a wrong business model. Though I am sure this business model is much more profitable.
I does look good from what info is available though.
- it's nice to use git for all the small side projects one creates, but putting all of them on github is crazy expensive if you like keeping your musings private (though not necessarily b/c you're committed to a closed source ideology :)
- the cost factor creates an incentive to misuse git (not using submodules where appropriate) just to save money.
- There are a lot of awesome Git UI programs that run locally on my laptop, gitk is one.
- FWIW his fills the niche between github and gist.
Private code sharing. You have to install something like gitolite (see my other comment) to do private code sharing with git on a VPS, or you'd have to create a system-level user for every person you want to share code with.
It is one of their "one-click" installations and I have been pretty happy with it for my limited use.
Makes sense?
Cheers, to you for adding some competition to the marketplace. I hope it provides some pricing pressure on Github one of these days.
> Please note: While we do not guarantee our free services, we do want to build a long-term relationship with you. So, even if you sign up today for a free plan, and we discontinue that plan, we provide service for at least a year after you sign up. We will add and remove our Free offers to meet customer demand. Enjoy what we have posted today, and check back regularly for additional offerings!
I couldn't find it for 5 minutes!
A similar thing happened to me a few weeks ago when I was looking for a way to add more repositories to a project. Luckily I got an answer quickly on their support forum (and yes, it was there).
So yes, the UI and information hierarchy is lacking, but ultimately it can do a lot of things.
(For future reference, you can change the settings under Stream - Email Notifications).
Admittedly some of their tools have small problems, but the team is responsive and improves it steadily.
I've used one of their paid programs for everything we do (must be about two years by now) and I would recommend it.
Assembla doesn't seem to have that social aspect like Github, but I find their combination of tickets, wiki, forum and repos more useful.
Thank you, fellow Hacker News citizens.
Good job.
What about security? If i sign up, is my code safe if I want to keep a repo only for me?
It's a wonderful service and they've done so much to keep many open source projects from stagnating. They outshine SourceForge and Google Code by a large margin. Still, if BitBucket was git, I might migrate my stuff.
The thing is "social coding" isn't that big of a plus for your own private stuff. I definitely see value in a service like this.
i just back up to multiple boxes, but i can understand why someone would want something centralized and specific.
How is this unlimited? Are there other plans that you can sign up for? If so they seem impossible to find on the site.
Granted, something like "2GB private git hosting" might be more accurate.
It's free for up to 2 users. Unlimited repos and disk space.
However, the fact of the matter is they have a particular pricing plan, and that pricing plan is such that for certain people it becomes not worth it.
When you go to a fast food place, they generally offer you varying sizes of soda.
For most people that's fine....but for some people their needs may fall JUST in between two sizes...for example they want more soda than a medium, but they don't really need a large.
So they start buying a large...because that's a reasonable compromise.
Sure, the large may be a very good deal, but that's completely besides the point. It's more soda than they really need, and they are wasting money by buying it.
When someone offers a size of soda that happens to fit their needs exactly, there's no reason they shouldn't switch to that. If their needs change they can always go back to their old size, or even a newer one.
Or to pick another soda analogy, imagine that the fast food place only charges for the soda cup. It's a dollar a cup for everyone. This is a GREAT deal for most people...they come in pay a dollar and get a cup of soda, with free refills. The fast food place does alright because it all balances out in the end, the people who drink a little soda subsidize the ones who drink a lot. Even people who only drink one cup of soda get a reasonable deal.
Now imagine you come in with 100 kids who only need a thimble-full of soda each (for the sake of argument). You're paying 100$ for the amount of soda everyone else is paying 1$ for! Overall, the pricing plan is reasonable...but for certain people it falls apart.
Why should those people go with a deal that doesn't work for them? It's better all around for them to find a better fit.
The fact that github is awesome and a great deal is completely irrelevant re the issue at hand. The point is some people don't need all the github awesomeness, they just want somewhere to stick their code.
If that's all you need, there's no reason at all not to go with a cheaper option.
That's not to say that the cheaper option is this guy's service....it could be any number of things. For some people this codeplane is a good fit, for others...not.
You actually put your finger right on the fallacy. It feels that you're wasting money by buying a GitHub account with 100 private repos when your repos are largely inactive. But the way to make smart economic decisions is not by measuring hypothetical waste (i.e. how much of the account you are using) but by comparing the options side by side. You pay more for GitHub, yes, and you pay for stuff you might not use, but if it saves you a few hours per month then it's a better choice than going for a service like CodePlane.
...and that's the hole in your reasoning. That is not a forgone conclusion at all...in fact it's a non-sequiter.
In the analogy these people aren't getting ANYTHING for paying the 1$ per cup (vs paying 50 cents for the actual soda used)...there is a theoretical benefit of free refills, or it being a reasonable price for the cup of soda...and for the people who use it, it's great.
...but the whole entire premise of this discussion is that for some people that's no benefit at all since they're not using it.
We've already eliminated all the people who are getting their money's worth out of Github, that's the premise of the conversation....we're talking about a service that is designed to cater to people for whom Github's pricing plan doesn't work for their needs.
Additionally, to argue that these people don't exist is a specious argument. I think it's an incredibly dubious proposition that there is ANY service which precisely fits the needs of it's entire target market.
>. But the way to make smart economic decisions is not by measuring hypothetical waste (i.e. how much of the account you are using) but by comparing the options side by side
Yes, precisely.
You make smart decision by weighing your own personal needs against your options. Everyone has different needs, and while Github works for many people, it does not work for everyone.
Again, I'm not prepared to say codeplane represents a solution for all these people...many will simply go to bit-bucket, handle it themselves, etc... but I think it works for at least some of them.
GitHub forces me to open-source those small projects, and I'm usually fine with this, but lots of other people aren't. And if he can offer it for $9, then why shouldn't he? Your complaint is that his potential customers should pay more, because you think GitHub has better features, which he may or may not need. That doesn't make any sense. Having different offers and different price points makes sense, so I really don't see why you are knocking the OP for making something that fits his (and presumably others) needs.
I'm making the case that it doesn't fit his needs, since his reluctance of paying the GitHub price is an example of this:
How does a reference to someone finding little friction to paying multiple tens to hundreds of dollars for things while cringing at a 99-cent expenditure have anything to do with this?
GitHub bothers me, to be honest. I read a lot lately about how many people are using GitHub as a sort of "programmer's portfolio", and, more importantly, how many startups are asking for your GitHub URL as a part of your resume package. As if how many active repos on GitHub you have is some sort of even remotely useful metric as to how good a programmer you are. There's a lot of pressure to have a strong presence on GitHub, while their product offering doesn't seem to meet the needs of a lot of people. Not to mention there's tons of talent that uses hg or bzr as their VCS of choice; nobody asks for your bitbucket or launchpad URL.
And I'm arguing that his displeasure with GitHub's price comes from the fact that he's underestimating the extra amount of time he will have to spend as a user of CodePlane because CodePlane is not remotely as polished as GitHub. I'm arguing that this extra amount of time will not be worth the difference in price.
"[...] developed an alternative that costs less and offers more of the "bare bones" stuff (more space, unlimited private repos) instead of focusing on the higher-level collaboration tools and web interfaces. [...]"
It's not just collaboration and web stuff, it's reliability and security. Would you seriously trust a tiny service like CodePlane to store your code? Both ensuring it won't be deleted and that it won't be hacked into? If DropBox has trouble with those issues, would you trust a low-budget one-man-operation with your 50 repos?
"[...] There's a lot of pressure to have a strong presence on GitHub [...]"
When people evaluate programmers they often have to rely on far-from-perfect metrics, like university credentials. Putting emphasis on GitHub and ignoring the other forges is not ideal, but it's such a big improvement over the old ways. It's hard to get new metrics accepted into the mainstream.
Yes, I get that. I just don't agree, and presumably he doesn't either.
It's not just collaboration and web stuff, it's reliability and security. Would you seriously trust a tiny service like CodePlane to store your code? Both ensuring it won't be deleted and that it won't be hacked into? If DropBox has trouble with those issues, would you trust a low-budget one-man-operation with your 50 repos?
And GitHub started as... what, exactly? A tiny low-budget one-man operation? Everybody's gotta start somewhere. Maybe CodePlane doesn't meet your reliability and security requirements today, but there's nothing saying it won't in 3-6 months.
And regardless, this is Git we're talking about. Every repository clone is a full backup. If you're still concerned, add a post-commit hook that also pushes to another server you control, or set up a cron job that does rsync every now and then. I'd do the exact same thing on GitHub as well -- why would you trust GitHub to never have an issue that might render their backups useless? It's certainly not the first time this has happened to a service that does their own backups. If there's data you really care about, you must maintain your own backups. At the very least use an online backup solution (or something like Dropbox). Maybe not something you control, but at least it's pretty unlikely that both services would fail at the same time.
When people evaluate programmers they often have to rely on far-from-perfect metrics, like university credentials. Putting emphasis on GitHub and ignoring the other forges is not ideal, but it's such a big improvement over the old ways. It's hard to get new metrics accepted into the mainstream.
Yeah, that's true. That was more of a mini-rant on my part than an endorsement of anything non-GitHub.
What's your problem?
I'm curious about the OP's logic. I believe I found a hole in it and I'm curious whether I have made a mistake or he did, and I'll be happy if he'll point out my mistake if I have one.
Also, git annoys me. Thus, Bitbucket, and life is good.
* - Which is to say, source/diff browsing, a markdown-based wiki for some projects, and that's it. Github has a lot of features, but it also has a lot of completely useless features.
One funny thing about github is they put so much effort in to being able to diff images and other files, yet their space limits are too low for private repos, if you are versioning anything other than just text files.
Btw, I like both the idea and execution. Good luck... :)
I was a paying GitHub customer until I decided that I spent too much money on online subscriptions. But when I'll pay for a Git hosting service again, I'm going back to GitHub, as I'm still a happy user of their free account. GitHub rocks.
Sure, competition is good, but I don't get what codeplane.com is offering, considering that configuring your own in-the-cloud repository is so easy on a VPS (that you're likely to have anyway and be left unused to its full potential otherwise).
I think the only thing i will miss from github, is the feature to view your code online.
Here is my advice. What github looks charming to me is the wonderful service for free plan users. I think this is wise, build a huge audience, and then "out-teach" them to be their potential customer. Success comes after the fame.
Assuming you have ssh access (compacted for clarity):
ssh server "git init --bare repo/project.git"
git clone server:repo/project.git
Am I missing something?EDIT: mkdir superfluous
A service like this is nice if you don't have the ability or time to setup your own environments, but in my opinion could be risking a very slim user scenario.
It might be a better idea for Github to allow projects to be archived.
However you may well have something on the keeping it simpler approach.
I'm very happy that more people are going to compete with github :)
Works pretty well.
i know its not git, but bitbucket (mercurial, same type of dvcs as github) has free private and unlimited repository hosting.
However I still see the value in this service, and I like it.
give me free accounts with a few MBs and you have yourself a user base.
github didnt get that size with 9/mo plans...
Github's monthly fees are so much cheaper than the cost of your developers time and happiness.