We Are Not Github, and That’s Perfectly Fine

A question that pops up often when I describe Binpress to people in the know, is “why not use Github?” Well, allow me to explain:

We are not Github

Github is “social coding” – a Git repository service with social elements baked in. People publish their code and other people can follow their progress, submit issues or even contribute code (depending on permissions).

On the other hand, Binpress is a curated inventory of solutions for common needs in software development. It is a not a collaborative coding environment, but rather a publication platform for code authors. Elaborating on those differences:

  • “Projects” on Binpress are called components to distinguish them from “snippets” and must meet a minimum threshold of non-trivial code while demonstrating usefulness.
  • Components must adhere to our publication guidelines. This is what we mean by curation – We manually inspect each component for coding standards and implementation details. Github has 3.5 Million repos – not easy to find quality projects that don’t have significant traction (by the way – they just went over 2M users – major props to the Github team!).
  • We provide a licensing system that allows for both free open-source and commercial open-source licenses. More on why below.
  • We provide a marketing layer to get attention for published components. We help component publishers write marketable description and content, we drive traffic to their component pages and we design those pages to look professional and attractive.

Github projects can be published on Binpress, either by connecting through a Github account and automatically importing it or by adding it manually. The reasons why someone would publish on Github and on Binpress are different – We are symbiotic to Github, not competitors – they drive traffic to us when our publishers use public Github repos, and some of our publishers create private repos on Github to host commercially licensed code. (they also sponsored us on several past events)

Commercial Licensing Is The Devil?

Another question that sometimes pops up, usually after the Github question, is why do we allow / provide the option for commercial licensing on Binpress?

Some developers, who normally have no qualms about monetizing every other aspect of their work, become very defensive when you take the ‘free’ out of ‘free open-source’.  There’s a sense of entitlement in software development, that is the result of having being poiled by some great free open-source projects over the years. Publishing a free open-source project is not for everyone – isn’t it better to have more (quality) code available regardless of pricing?

I understand the value of my time. I not only have an hourly rate, but I also grasp the value of getting ahead of a schedule, or being able to meet an aggressive schedule without having to compromise functionality or vision. The idea of paying others for quality source code is something I find very easy to accept and understand. –Matt Gemmell, Selling source-code

I already wrote in detail about how commercial and free licensing supplement each other as a necessary balance in the industry (you should really read it if you’re interested in the subject). TL;DR:

  • There’s no contradiction – as there isn’t between commercial businesses and not-for-profits. We applaud people who can afford to dedicate the time and effort to support a free open-source project, but also welcome people who want to make it a professional business.
  • The software market is huge and rapidly growing – and it cannot be sustained by free software alone (this is where the nitpickers say – we only want the code for free, but the correlation is the same).
  • Most big name open-source products have a commercial element that makes them a viable business (Mozilla, MySQL, Magento, Redhat, to name a few), and sustains their development and support.

We believe treating code release as a business can have positive benefits –

  • It raises expectations and accountability
  • Supports further development
  • Frees up the developer to allocate time and attention
  • Handled like a professional project
  • Another option for software engineers to make a living

While some highly prolific open-source projects got to that level without commercial licenses, they are the exception, not the rule. Many open-source projects that have since gone defunct could have been supported by adding a commercial license or other form of monetization.

If it’s really about keeping people from reinventing the wheel, then give the wheel designs to everyone for free. –Jeremy Russel in an HN comment

A common comparison, but a particularly bad one – Components on Binpress are not the concept of the wheel, they are implementations of wheels. Demanding that they be released for free is analogous to asking wheel companies to give away free wheels since they are important for making cars. It’s up to the wheel companies to make that decision, and luckily Binpress publishers are much more accommodating since we have about a 50-50 split of commercial and free licenses (including dual-licensing).

Personally, I feel that if a concept or a method is fundamental or ubiquitous enough then it should be available for free – in that case the wheel analogy makes sense. And yet, just consider for a minute how many of those are patented by your favorite technology company.

The Ecosystem of Software Development

You are wasting an outlandish amount of money writing code that already exists. –Joel Spolsky, Things you should never do

The goals everybody in the industry should have are shorter development lifecycles, lower development costs and more focus on the unique value their product creates. Using off-the-shelf solutions to solve the non-core needs is a very effective way to achieve that.

Is Binpress the solution? that remains to be seen. Sure enough, our inventory is still small compared to the amount of common needs in our industry, but it’s growing daily and hopefully one day it can be that solution. You are welcome to add your project if you feel it meets the requirements and can be useful to other developers.

If you made it this far and you develop software, I’m sure you have an opinion about the points made in the article. Let us know what you think in the comments below.

Author: Eran Galperin