All that is the benefit of open source, and the concept is if you can't find what you need, find something close and customize it, or study the code and learn how to make your own as angelwatt noted. Then, if possible, share it, later, and continue the cycle. The objectives of open source include a reduction in development time, reduced costs in the overall project, avoiding reinventing the wheel, introducing more features more easily and quickly to projects, rapid time-to-fix, code sharing, improvement by committee and so on. By no means the only or best solution, the one thing that is true is open source is well respected and common these days for many small and large scale projects as it's much more mainstream and organized (i.e. sourceforge.net, frameworks) than it was in the past.