A common question I encounter from developers interested in joining Binpress is – “I already have code published with an open-source license, can it be sold? is there a way to earn money from the results of my work and still provide an open-source solution?”

The answer is “yes, you can!”. There are many reasons why people choose to give their code away for free – and ideology is not number one (can you guess what is?), but giving your code for free shouldn’t prevent you from getting something back for your investment of time and skill. It could support further development and also you as an individual.

Dual licensing

The most common way to support open-source development is by using multiple licenses. Give a free version with a free open-source license and a paid version with a commercial license (what we like to call commercial open-source).

Even if you already have your package published with a free open-source license, you can add more licenses to it as long as you own the copyright (you are the original author or the author transferred his copyright to you).

The packages offered with the dual licenses can be completely identical or they can include differences that make each package appropriate for different situations. There are several common combinations of dual- or multi-licensing:

1. The Freemium model

Freemium is a combination of the words of ‘Free’ and ‘Premium’. In relation to licensing, this means that one flavor of the source-code is given a free license and a premium version is sold under a commercial license.

The premium version can include more features, examples or support amongst other things. Known projects that use the “Freemium” model include MySQL (community and enterprise editions represent the “Free” and “Premium” packages), and Magento which has one free edition and multiple premium editions (called “Enterprise” and “Professional”).

** Now on Binpress **
We’ve just added a feature that enables you to use the freemium model on Binpress – you can attach different packages to different licenses for the same component. This way you can provide additional features / examples in a package with a commercial license while providing the core with a free open-source license.

2. License requirements

Another common approach is to place some requirements or restrictions into the free license that might motivate certain users to purchase a commercial license. Common requirements include requesting attribution (usually with a back-link to the author), disallowing commercial use of the free license and limiting use to a specific number of sites / servers.

In this case the commercial license will offer an alternative to users who need to remove those restrictions. Personally, I think disallowing commercial use for the free license makes sense often, since if you are using the package to make money, it would seem reasonable to pay a small fee to the package author for helping you.

3. Donations

For those who really want to make their software available to everyone without any restrictions, the last option is the donation option – in which the paid license offers the exact package and license terms as the free license, but allows people who use the code to express their appreciation and help support development by placing a donation.

Giving people choice with multiple licenses

Multiple licenses give people the option to choose the best option for them. Even if you offer only commercial licenses with your package, giving several pricing options will appeal to people with different budgets and needs.

A very common licensing plan is to give a “Personal” license as well as a “Sublicensable” license for a higher cost. The “Personal” license allows use by the license owner only and does not allow reselling the code as part of a larger package, while the “Sublicensable” license allows just that.

For example, if you developed a jQuery plug-in, and you want to give people the option to include it in a larger system (such as a CMS) that they would like to sell, you should provide a “Sublicensable” license. You can read more about the typical licensing options in our licensing guide.

Free licenses as a marketing strategy for commercial products

The interesting part about dual licensing is that it applies just as well for commercial packages (apart of course, from the “Donation” option). By giving a free-license you are essentially allowing people to try out your work before purchase which could lead to a significant increase in commercial license purchases. If you do not have a live demo this could your best chance to convince people of the value of your package.

Closing words

Our whole philosophy is based on the concept that open-source development can support developers and our goal is to make it happen for as many developers as possible. In this post I showed several options to make that happen depending on your approach to open-source.

If you have any questions or comments about this article, I would love to hear from you in the comments.