Licensing: "Free" != Better
Open source projects are great. Many provide elegant, refined code for free. They can save hours of development time and hassle. They’re often a jumping-off point for up-and-coming developers to share their innovation with the rest of the community, inspiring others to write better code. Of course there are also plenty of open source projects that are riddled with bugs, poorly documented, and downright dangerous to use. The web is littered with abandoned projects that once seemed promising. It’s like a clearance bin you’d find at a discount store – there may be some treasures in there, but you’ll have to dig through a lot of garbage to find them.
Over the years, I’ve seen quite a few open source tweening engines pop onto the scene, get some buzz, and then gradually stagnate and fade off the scene. Many stay in Beta for ages. Some contain known, unpatched bugs. The community usually does a good job of eventually recognizing quality solutions and gravitating towards them, but there are always people who try out the “latest and greatest” thing, only to be disappointed in the end as it stagnates or fails to mature. Don’t get me wrong – I’m NOT saying all other tweening projects have suffered this fate or are “bad” in some way. In fact, I have spoken directly with some of the authors like Grant Skinner (GTween), Zeh Fernando (Tweener), and Moses Gunesh (Fuse, GoASAP). I have the utmost respect for each of them, and this article isn’t meant to diminish anyone’s hard work or generosity in the least. From my perspective, however, there are some common frailties of open source projects in general that I have observed, and my goal has simply been to figure out a way to protect the GreenSock Tweening Platform from falling victim to them. I have learned that one of the key factors in keeping a project like TweenLite thriving is actually the licensing model.
The funny thing is that in all the feedback I get about the GreenSock platform, I don’t get many complaints about functionality, performance, bugs, documentation, or ease of use – the most common complaint (which really isn’t very common at all) has to do with the licensing model. The complainers love the frequency with which the platform is updated and enhanced, they appreciate the prompt support, they may even recognize the thousands of hours that have gone into building, refining, and supporting it, but they object to the very thing that makes all that possible – the licensing model. More specifically, they don’t like the fact that a very particular, uncommon (less than 1%) type of commercial use would require the special license that comes with a corporate Club GreenSock membership. They don’t seem to realize that Club GreenSock provides a vital funding mechanism for ongoing innovation, optimization, and support. Without it, the project simply couldn’t be where it is today.
An MIT (or similar) license is perfectly adequate for projects that don’t need much updating or support. But a tweening platform has a lot of moving parts and is absolutely essential for most modern Flash applications and web sites, so frequent updates and enhancements can be crucial. The platform must be tightly optimized, full-featured, and flexible without becoming too bloated. Documentation and examples become increasingly important as the feature set expands and companies standardize on it, needing to train new employees, etc. This takes time and energy, so the author’s active involvement will directly impact its robustness, reliability, and staying power.
An MIT license is also great for authors whose goal is to start something, then step back and let the community run with it in any direction they want, altering the code and redistributing it. But that hasn’t been my goal. In fact, I think it can lead to a lot of confusion as different flavors start popping up all over with incongruent feature sets and incompatibilities. Focus and direction are easily lost. If there’s no driver (or too many drivers), it can be a scary ride for the passengers. I wanted to protect end users from these dangers, so while the GreenSock license does allow for tweaking of the code in order to make it function as originally intended (bug fixes), it doesn’t allow for Frankenstein-like alterations that are likely to cause problems. Again, I’m not saying an MIT (or similar) license is bad or wrong – it just didn’t align with what I thought would serve the community best on this particular project.
My goal with the GreenSock licensing model has been to create a solution that makes the platform extremely accessible, completely free for 99%+ of the use cases out there including the vast majority of commercial uses, while the “power users” (less than 1% of the users) who are directly profiting by a specific type of reselling of a product that uses GreenSock code end up providing a revenue stream that drives continued innovation, support, and optimization which benefits all users. I firmly believe that it ultimately delivers a better end product for everyone. I would argue that this licensing model is a feature of the platform, not a liability, and that it should give end users more confidence, not less. In fact, many companies have chosen the GreenSock Tweening Platform because of the license, not in spite of it. They wanted to invest in a platform that had a certain level of commitment behind it, not merely an “I’ll get to it when I get to it” attitude.
My Dad always taught me that successful people don’t base their decisions on “how much does it cost?” but rather “how much does it pay?” He helped me see how silly it was to become hyperfocused on price. I started noticing lots of hidden costs in going “cheap” on certain things. There are always trade-offs. The same concept applies to 3rd party code. “Free” != Better. In fact, there can be some significant costs associated with “free” code that shockingly few developers recognize. When you look at the facts, I think you’ll see that it makes a lot of business sense to invest in the platform.
After pondering it, I realized that using an MIT (or similar) license for the tweening platform would force my user base to pay some hidden costs that I found unacceptable. Specifically, they wouldn’t get the enhancements, code refinement, or support that I felt would be necessary to serve them well. Sure, on paper the MIT license sounded desirable for end users, but when I took a step back and looked at the bigger picture, I saw why using a slightly different model would make a lot more sense for everyone involved.
Also, don’t let the licensing issues scare you into adopting either of two extreme views:
- Some developers absolutely refuse to use 3rd party code. When it comes to a tweening engine, they either stick with the Adobe Tween class which performs horribly by comparison and is anemic in terms of its feature set, requiring tons of extra code, or they resolve to write their own engine because they’re scared of the risks involved with using a 3rd party engine and they believe their own code will be superior, not recognizing the likelihood that the 3rd party already solved a bunch of nasty challenges that await them as they embark on their “reinventing the wheel” endeavor. These developers end up wasting considerable time and missing out on a tool that could revolutionize their workflow, drastically improve efficiency, and raise the quality of their end product. If they build their own, they also must train other members of the team to use it and then worry about the maintenance, documentation, and optimization. Stubborn refusal to take advantage of refined 3rd party code can be costly indeed.
- Some developers turn up their nose at the thought of paying anything for 3rd party code especially when they believe they could find something similar for free out on the web. “free == better, open source rules!” is their mantra. But they fail to recognize the potential hidden costs of using “free” code that has no funding mechanism. It could be poor support, slow bug fixes, lack of continued innovation, poor performance, sub-par feature set, bad documentation, etc. These developers tend to be penny wise and pound foolish, making silly sacrifices just to save a buck in the short term.
In summary, don’t buy into the idea that cheaper is always better or that an MIT license is necessarily superior or safer. Consider the hidden costs and risks associated with any licensing model. Maybe you don’t see the value in the GreenSock model and that’s okay; there are plenty of open source engines to choose from. But my goal with this post was to respectfully challenge some of the paradigms out there regarding licensing and explain the factors that informed my decision to use a rather unique model.
Comments (21)

Spot on Jack, i’m here as this engine is obviously an ongoing project being furtherly developed by yourself and GS. I’ll be needing corperate license soon for several stock components, more than happy to pay for it
While reading your article I momentarily visioned a diagram showing how tween projects come to be, then emerge, stay in the buzz zone then gradually drop below the radar just to die some time later or to reemerge.
I also think, that a solid revenue stream will enable further development of an open source project.
Good post!
TweenLite is great. I am so happy to use it all the time.
Right now I have donate the minimum to be able to use the custom easing.
There is no doubt in my mind I will soon enough get the corporate license.
Any component that is worth selling + needs tween engine = needs gs.
Anyway I get so excited every time I thing about gs, such a nice work!!
Thanks a lot + nice post.
With v11 imminent, I am considering switching over to TweenLite completely. I’ve been using HydroSequence (GoASAP) a lot because of it’s sequencing capabilities. However, it is a perfect example of a project that may be petering out as known bugs remain unpatched. For simple tweens, TweenLite v10 has been solid. Thank you for your hard work on this… your licensing seems fair to me
I think your license model is spot on and great. Of course you need to get something back for specific functions. I see no problem with that. Like Mo, I as well will probably buy the corporate license soon.
I actually think you’re license model is pretty spot on for a library of this type. It allows newcomers to get into your product free of charge, while providing some revenue from people who are sure to make money from using your library. You should perhaps think about standardizing it in some way so that other library producers could use your model also? Put it on the same level with GPL/Apache/MIT etc., i.e. write a formal License agreement that other developers could refer to when they say “This code is subject to the Greensock License Model” or something like that. Think about it
Let’s not forget though that if it wasn’t for Robbert Penner’s Open source under the BSD License equations, your tweening engine might not exist. I’m mostly playing devils advocate here, as of course your product does much more than wrap the easing functions.
Indeed, Robert Penner’s equations were a breakthrough in their time and he deserves nothing but respect (he certainly has mine). But like I said in the article, a BSD or MIT-like license is ideal for code like that because it isn’t something that needs frequent updates, enhancements, etc.
I agree. I also just signed up for Club GreenSock.
Within economics, there is a term for what you are describing ‘tragedy of the commons’. It’s not a perfect fit, but the concept is similar. Basically – when everyone one owns something, no one ones it. No one owns it, so no one cares for it and it dies.
The proper way is along the lines of managed commons, this would be things like Linux, Flex, and Zend. There are parties with commercial interesting in them, that is why they thrive.
I think your license model is more than fair. The quality and features are outstanding. Having a corporate license (I even bought TransFormManager blindly),it’s directly going into the quality of my work while saving me a lot of time =$$$$
Keep it up!
TweenMax is the best tweening engine ever! It has a lot of unique features, and at least for me, it’s worth the money
I think anything worth using is inversely worth buying. TweenLite/Max is definitely worth using – nuff said
People who complain fall into two categories:
1. People worth listening to.
2. People not worth listening to.
Consider that when considering the gripes about a commercial license.
Anyways, another avenue for financial support would be occasional “donation drives” just like PBS and some free radio stations do. Just a couple newsletters and blog posts done twice a year urging users to join the club!
I absolutely agree with Jens Wegar, your licence model it’s such a clean idea, so could you release a GSock Licence Model under GSock Licence? I absolutely agree with your model and I’m just waiting for the project that would finance my Corporate Licence… that’s how I always do it, if a project requires a software or licensed stuff just add it to the bill, it always pays of, and the client ends up paying happily.
I pay for your product because it is good and it works, and makes me money and saves me time. I’m just so glad I tried out your tweening engine first, as lord knows the problems I may of come across on the way to finding it. Good work… well done… and as a side note… I’d not feel safe driving in an open source car!
Was glad to fork over the money for this awesome library. Most importantly, you do all of the work and the price is darn reasonable.
What I don’t like about other open-source project is some leverage contributors into bug fixing and contributing, but only the original authors benefit from any revenue when they do a switch-a-roo on the license.
There needs to a middle ground where we reward passionate open source developers and major contributors so projects thrive. Maybe call it fair source.
Anyway, did not hesitate at all to ‘donate’ to your cause. Keep up the good work.
Solid post Jack.
I still owe you another membership probably, just due to the fact that I’ve written more tweenmax code over the last 6 months than any other living human being.
Good read and good luck with v11 and all that it entails.
Hug
E
I had a pastor talk about tithing one time. He was really nervous about it until a friend pointed something out. “There are two kinds of people,” his friend said. “those who tithe and those who do not. Those that tithe will stand up and say ‘Amen, let’s all share the load’ and those that don’t tithe will call me Monday morning and say ‘how could you possibly talk about money in church?’. So, I’ll talk about tithing and risk the complaints because, what are they going to do, not tithe more?”.
Keep up the good work.
Great post, you’re absolutely right. I can attest to the fact that your timely responses for a product like this were definitely speedy. I’m sure you have more to do during your day than deal with the rants of people who don’t know what they’re doing, easily mistype something, or just get plain turned around sometimes such as myself. If I have to pay a small fee for a service like this and such a great utility as well then so be it. It’s such a small price to pay for the continual updates that you give.
I’ve said it before. Your Tween classes deserve the money. Over many years of playing with TweenMax, I have found NOT ONE bug.
Ok, you convinced me. You have a solid point.







