I can't tell you how many times I have come across an absolutely fantastic plugin, library, or graphical element that would be perfect for a project I am working on. I look around the page, or the contents of the downloaded ZIP file, only to realize one of the following is true:

  • There is no license
  • It requires visible attribution
  • It has a license that is incompatible with my project
  • Its only free for personal use, not commercial

At that point, if its a great library, I sometimes look for a purchase button for an alternate commercial license that doesn't require visible attribution. I rarely find I can purchase a commercial license easily – and I rarely work on strictly personal sites!

It seems most people don't realize (or don't care) about their license choice, so they pick the license they have seen a lot, or perhaps what seems to make sense at the time. Your license choice directly affects the ability for your free project to go viral!

Why did you release ________________ in the first place?

There are a number of reasons people release free things to the community, but most of them release free stuff because its fun! However, the step to choose a license for that free stuff is where most people get hung up. Many people will go for a license that requires visible attribution such as a Creative Commons license.

I personally release free stuff because its massively fun to see people use what I have worked on. A jQuery plugin I released called In Field Labels is in use all over the internet. You wouldn't know it because there isn't a line at the bottom of every site that says "In-Field Labels Plugin by Doug Neiner". However, I still come across it and it makes me smile every time. My plugin was released under the same license as jQuery (Dual licensed MIT or GPL), so its free for anyone to use without visible attribution.

The company I work for, appendTo releases code for free because it likes supporting the community, giving back to open source –– And probably showing off that we know our stuff! Because of their approach, you'll see their AmplifyJS library all over the internet being mentioned and used. (Also check out their totally free JavaScript and jQuery Training Course)

There are so many benefits to getting your work into as many hands as possible – your license choice really matters!

Who are you looking to impress?

Visible attribution is difficult at best, and often "impossible" to comply with when working on client projects. The client doesn't even want the development firm to have their name on the site let alone the social icon set or jQuery plugin author. If you think about it, where do you want your name to be known? Visible attribution makes sense if you want the end user of the site/product to know your free stuff was included on a project. However, most of the time, the end user could care less. What you should care about is that a massive amount of designers and developers are using your free project and telling their friends about it online.

Suggestions I have

  • If what you are releasing is meant to be used with another open source project, release your project under the same license. For WordPress it would be the GPL (Its required to do this, not an option!), for jQuery its dual MIT or GPL, for BlackBerry WebWorks its the Apache license.
  • Never use a Creative Commons license for code. Its attribution requirements will generally make people pass over the plugin. Use a real code license like the MIT, BSD, Apache, or GPL.
  • Request attribution if it's important to you, but don't require it. It's more important your item is used than that your name is plastered all over the web.

What do you think?

Should I be more concerned with getting attribution for the work I release? How do you like to give things back to the community? I'd love to hear your thoughts on license choice!