Every custom dev shop sells features. Almost none sell ownership properly. Which is strange, because ownership — of the code, of the data, of the deployment — is the thing that compounds the longer you use the software.
Here is what "you own the code" should actually mean, and the four ways most "custom software" vendors quietly limit ownership even when their marketing says otherwise.
What full ownership looks like
You should walk away from a custom build with all of these in writing:
- A private GitHub or GitLab repository with the full commit history, admin rights transferred to you
- Deployment scripts that work without the vendor (Docker compose, Terraform, or equivalent)
- Database schema and any migrations, in version control
- Credentials and access to all third-party services (Stripe, AWS, etc.) under your accounts
- Documentation: how to run it, deploy it, modify it, restore it from backup
- A licensing statement: "the client owns the source code, may modify, deploy, sublicense, and distribute without restriction"
That is the bar. Anything less is partial ownership, no matter how the contract is worded.
4 ways vendors limit ownership
Even when contracts say "you own it," there are real limits. Watch for these.
1. The "but we own the core"
Some vendors deliver "your" code on top of their proprietary framework or library. You own the application logic; they own the foundation. When you want to leave, you can't take the foundation. Result: you have a useless 30% of an app.
2. The "you can have the code, but not run it"
The code uses a vendor service (auth, payments, analytics) keyed to their account. You technically have the code. You can't deploy it elsewhere because half the features depend on services that won't work outside the vendor's umbrella.
3. The escrow trap
"Don't worry, we'll escrow the code." Sounds great until you read the trigger conditions: bankruptcy filing, sustained service failure, vendor consent. None of which fire when the vendor simply raises prices, deprecates features, or stops supporting your use case. Escrow protects against the rare catastrophic case, not the common slow-decay case.
4. The "data is yours" sleight of hand
"You own your data" usually means: you own the data after you export it. Often through limited APIs, in limited formats, with limited frequency. Your operational state — the rules, automations, integrations, configurations — usually isn't in the export. Migrating means rebuilding all that operational state somewhere else.
What it costs to get real ownership
Almost nothing. Full code ownership is a contract negotiation, not a feature you pay extra for. Any custom dev shop unwilling to deliver it in writing is signalling that their business model depends on lock-in.
A reasonable contract for full ownership includes:
- Source code license: irrevocable, perpetual, royalty-free, worldwide, with rights to modify, deploy, and sublicense
- Transfer of all third-party service accounts to client
- Documentation deliverable as part of project handover
- 90-day technical assistance for any handover questions
This isn't hard to ask for. The negotiations that fight it the most are the ones where you most need it.
When ownership matters most
Ownership matters less for:
- Throwaway projects (internal prototypes, one-off marketing sites)
- Genuinely commodity workflows where you'd never migrate
Ownership matters most for:
- Software that's part of your operations and grows with you
- Workflows that are competitive — you don't want competitors using the same vendor
- Compliance-sensitive industries where data residency is non-negotiable
- Any project where the 5-year cost of vendor lock-in exceeds the cost to build it once
The exit-story test
Ask any vendor this: "If we want to take this in-house in 18 months, what does that look like?"
Watch the answer carefully:
- Quick, specific, easy → ownership is real
- Vague, hand-wavy, "we'd work with you" → ownership is partial
- "Why would you want to do that?" → ownership is fictional
If you're evaluating a custom build and want to talk through what real ownership looks like for your specific situation, contact us for a 48-hour scope or run our cost calculator for a transparent quote that includes ownership in writing.