← All notes

Last reviewed 2026-08

Who owns the code — what to demand in a custom software contract

"You own the code" is said by nearly every supplier. Here is what to check before believing it.


Almost every custom-software supplier says the client owns the result. The sentence is cheap. What matters is whether, on the day the relationship ends for any reason, another competent team can take what you hold and keep the system running. That is the only definition of ownership that survives contact with reality.

Six things ownership has to include

  • The source code, in a repository you control — not one you are granted access to. If the repository lives in the supplier's account, you have a licence, not ownership.
  • An explicit IP assignment for work made under the contract, rather than a licence to use. The distinction is invisible until it matters, and then it is the whole argument.
  • The infrastructure: the cloud accounts, domains, certificates and DNS in your name, billed to you. A system you own running on infrastructure someone else controls is not a system you own.
  • Documentation good enough for a team that has never met the author — how it is deployed, how it is configured, what depends on what, and what to do when it breaks at 3am.
  • A clear statement of third-party dependencies and their licences, including anything with a commercial licence that would need to be transferred or repurchased.
  • The data, exportable in a documented format, without asking anyone's permission.

The test question

"If you vanished tomorrow, what would we have?" A supplier who owns the answer will describe the repository, the infrastructure accounts and the documentation without hesitating, because they have thought about it. Hesitation is the signal — not because anyone intends to trap you, but because a supplier who has never considered the question has almost certainly built something that cannot be handed over.

Why suppliers resist

Sometimes it is lock-in by design. More often it is habit: shared infrastructure across clients because it is convenient, a repository under the agency account because that is where repositories go, documentation deferred because it is never the urgent thing. The effect on you is identical either way, which is why the contract should specify the outcome rather than the intent.

Maintenance is a separate question

Ownership does not mean you must maintain it yourself. It means you get to choose — us on a retainer, your own team, or a third party — and that the choice stays open. A supplier who is comfortable being replaceable is a supplier whose retainer you are renewing on the merits, which is the only sound basis for one.

One clause worth adding

A handover obligation with a deadline attached: on termination for any reason, everything above is delivered within a fixed number of days. Nobody expects to use it. Its value is in what a supplier's reaction to it tells you during negotiation.