I'm an independent software consultant and I want to create a framework that lets me solve a wide variety of problems in a niche area. The purpose of the framework is to have existing building blocks that I can reuse and "configure" in order to implement custom solutions faster. For a client in the past I created a solution but the contract stated "work for hire" so I can't reuse parts of this code. I have a new client requesting a project of similar functionality but I want to "do it right" this time so that I can reuse this framework for other clients.

Any ideas on how to express this to the client both verbally and in the contract?

From what I've read in various resources it's either "work for hire" or you need to supply a license. Ideally I'd want to give the client full freedom to use and edit the code in perpetuity but also allow me to use this framework (and build some stuff on top of it optionally) for other clients. In other words do whatever you want with it but don't restrict me from reusing it with other clients.

I'm thinking of outsourcing this to some senior engineers that are better than me at executing this. The thing that's troubling me I don't want to take the full risk of paying for the development of the framework and then selling it to the client. Is there a way to develop this in the time that the client is paying (or as a fixed price) instead of developing it upfront?

Anyone has experience with a similar situation?

  • Definitely possible in most parts of Europe with standard terms. It would help if you state your location.
    – Roman
    Jan 27, 2019 at 10:51
  • I'm in EU but consult remotely for clients globally.
    – John V.
    Jan 27, 2019 at 10:53

3 Answers 3


One possibility is to include a clause that you may use external library code in order to complete the project. Then build your library in between clients, and use it during your projects.

I am based in Japan, and I just negotiate the terms with each project. If they want, I can deliver all the code, but they have to pay "full price". If I can reuse parts or all code for future clients, and I know I will, I can give discount. We just write it down in the agreement.


In general you retain the intellectual property for anything you code as a freelancer; this is in stark contrast to an employee who generally does not. Sometime clients insist on some or other kind of exclusive usage rights but most of the time without really having a compelling reason. To prevent any legal issues you would fare best by doing two things:

  1. Clearly and openly state in the contract that you will need to use and extend a framework to fulfill your customer's needs and that ownership of the framework will remains yours.
  2. Offer your client an unrestricted, non-exclusive license to use and modify the provided code including the framework. Make up your mind whether your client would be allowed to share or even sell the code (including the framework) beforehand!

As @SebastienCagnon suggested you can tell your clients that doing the job would be more expensive without using the framework if they insist on exclusivity.


You can certainly develop your code base while being paid by your client, and retain the Intellectual Property rights to re-use going forward.

In north america this would typically be dealt with by using a standard 'fee for hours' contract, where you are paid to solve the clients' problem. The IP clause in the contract would state that you retain all IP rights to The Code.

Then you would create a separate licensing agreement for use of the code base for that client. Something to the effect of 'The Client received the right to use and modify The Code in perpetuity without the further written consent of The Author'

This approach allows:

  • you to develop the code while being paid by your client
  • the clients' use of (and modification rights) to the code going forward
  • you to retain the IP rights to your code so you can re-use however you like going forward

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.