Answered: Can freelance developers share the code for free on their blog or as a FREE plugin if a client has hired them to develop it and has paid them for it?
My question is, can I share the code for which client has paid me?
Very interesting question and thanks for asking. Ideally, you shouldn’t be sharing anything that you are paid for as free on your blog or to the open source community or even resell them to other clients.
So the short answer to the question is no, you can share the exact same code for which you have been paid. Here are a couple of ways to do it the right way.
1. Ask for Permission
You can ask clients that you wish to share the code or the plugin. Most clients will agree to it.
Here is a Facebook Open Graph Images for threads and forums plugin I developed for a client and shared it as a free plugin to XenForo community. When I asked the client, he agreed to it. He also shared a very positive review of it.
Client agrees to such request because it means they get a reliable plugin that will be maintained and upgraded over time.
All the clients may not agree with it and so offer them a discount on the price to be able to share it or offer them extra support for the plugin.
In short, add more value for the price they are paying.
2. Build Something Different
If a client doesn’t want his functionality to be available for others to use, build something different or remove specific functionality.
As an example, when I was working in Lexmark International as a C++ Programmer, I learned a lot about GUI based C++ programming. Here is a couple of code from 2006-2007 time I shared.
- OutputDebugString with a variable number of arguments – In Lexmark, we all wanted to have such an option to debug the issues faster. So on one weekend, I just wrote it.
- Custom Image Button – We were working on GUI rich application in Visual C++. I wanted to learn to code GUI rich components in Visual C++. Often when you are dealing with huge code, you don’t tend to learn a lot, especially in Visual C++. There are PAINT methods in each of the parent and subclasses of many such elements. So one may not know what is being painted and invalidated from where. I wanted to understand them so I created a minimal code with my understanding and shared it.
So if a client doesn’t allow you to share what he is paying for, you can’t share them. So either convince the client to share them or create something from what you have learned as shareable.