I was asked by a client to submit a proposal for a web-app he wants to built. This client is a startup with a relatively good traction so far (as it seems).I have been asked to draft up a contract that prevents me from writing any of the code I write for them anywhere else. Up to this point I was drafting up contracts where I retain the exclusive rights to my source code but the client retains all rights as well (selling, modifying etc.)So this sounds pretty bizarre to me: What If I have another client with a similar (but not exactly same) project and he wants me to develop his application? Of course I won't copy and paste from the previous project - but it sounds to me that I won't be able to use any of the insights I gained in the previous project and I won't be able to write this code again for any client.So the question is - If I give all the rights of my source code to the client, does that mean I am never able to rewrite this code for someone else?Note: I know most of you here are not lawyers and I'm not really looking for legal advice, rather just what these type of contracts really mean in terms of ownership to the source code, what's the usual thing to do etc.
How exactly do exclusive code rights work?
freelancing;copyright;contract
Ownership of the code means that you will be assigning copyright to them.  In practical terms, that means that you will not retain any of their source code when the project is finished.  That way, you can't be accused of reusing the code you wrote for them in other projects.  This is a fairly typical arrangement; they are paying you to write code for them, so naturally they want to retain ownership of said code.If there is other intellectual property that needs to be protected (i.e. some proprietary algorithm), then that algorithm needs to be dealt with specifically.  In particular, the innovation needs to be novel, and not easily reproducible.  Ideally, it is covered by a patent, but you can still be asked to sign non-disclosure agreements.  You should abide by those agreements, and refrain from using the proprietary algorithms in other projects.The key here is specificity.  Your client should make it clear specifically what intellectual property and ideas they want to protect.  Don't sign anything that casts a wide net like you can't use any ideas you've obtained in other projects.  That's an unreasonable demand.  Don't sign a non-compete agreement either; it may prevent you from working on industry-related or competitor's projects.