Process & contractsSeptember 30, 20265 min read

Guarantees and the contract in custom development

In short

Before signing a development contract, check five things: what exactly is named as the deliverable (an itemized list, not "we'll build a website"); who gets the rights to the code and when — in writing; how stages are accepted and where the line is between a fix and a new task; what the post-launch warranty covers and how long it lasts; and whose accounts hold the domain, servers and repository. If the contractor answers even one of these evasively — that's a risk that will later cost more than all the savings.

Contents
  1. 01Why "we'll take care of everything" is not a guarantee
  2. 02The subject of the contract: what exactly you will get
  3. 03Code rights and access — in writing only
  4. 04Acceptance by stages, not "at the end"
  5. 05The warranty period and what happens after launch
  6. 06Red flags in a contract
  7. 07How it works at InterLAB

Why "we'll take care of everything" is not a guarantee

In meetings every contractor promises the same: fast, high-quality, with heart. The differences begin in the documents: which of the promises is recorded in a way you can point to three months later, when all that remains is the correspondence and the contract.

A contract isn't a sign of distrust — it's a tool against misunderstanding.

A contract isn't a sign of distrust — it's a tool against misunderstanding, and it protects both sides: the client from "that wasn't included", the contractor from endless "just one more tweak". A telling marker: a solid contractor insists on a detailed contract themselves, because they work by it every day.

The subject of the contract: what exactly you will get

The most common source of conflict is a one-line subject: "website development". Each side reads its own meaning into that line, and the difference surfaces at acceptance.

The same goes for the handover format: code in which repository, documentation in what form, access to which systems. "Hand over the project" without specifics is the same one-line trap.

Code rights and access — in writing only

The block where mistakes are the most expensive. Check that the contract explicitly says:

  • Rights to the code and materials pass to the client upon payment of each stage — not "after all work is complete" (otherwise a mid-project dispute leaves you with nothing).
  • The repository is created in the client's organization, not at the contractor's "with access for you".
  • The domain, hosting and key services are registered on the client's accounts — switching contractors must not require a "relocation".
  • The list of access to be handed over is recorded: repository, servers, domain, databases, integration keys, analytics.
  • A termination scenario is spelled out: what is handed over, within what time, what counts as paid.

Acceptance by stages, not "at the end"

A contract with a single final acceptance means you learn about problems when fixing them is most expensive. The normal scheme is stages with a working demo and an acceptance act for each.

What to record:

  • The stage's duration and contents.
  • The demo format (a live product, not screenshots).
  • The time the client has to give feedback (yes, that's a client obligation — without it, "the contractor missed the deadline" often means "we didn't reply for a month").
  • And crucially — the line between a fix and a new task.

The line's formula is simple:

A fix

  • A mismatch with the recorded description
  • Gets fixed within the stage

A new task

  • A new wish
  • Gets estimated separately

Both sides know the rules in advance, and acceptance stops being a negotiation.

The warranty period and what happens after launch

Launch is not the end of the relationship: something will surface on real users. Check three things:

The warranty period

What to record
For how long after launch errors are fixed for free, and what counts as an error: a mismatch with recorded behavior — yes; "let's move the button higher" — no

Support after the warranty

What to record
The format and terms — retainer, hourly, per request; reaction times for critical and non-critical issues

The difference between warranty and growth

What to record
Warranty fixes what was promised, growth adds new things

Red flags in a contract

  • 100% prepayment before work starts — solid studios tie payment to stages.
  • Code rights "after full payment of the whole project" — you've paid for intermediate stages but received no rights to them.
  • Refusal to record the "not included" list — the boundaries will then be drawn mid-dispute.
  • No termination-and-handover clause — you can't exit the relationship without losses.
  • A template contract with no mention of your project's specifics — it wasn't written about you.
  • "We guarantee search rankings / top spots in ChatGPT" inside a development contract — promising what the contractor doesn't control.

How it works at InterLAB

For transparency — our own setup, usable as a question list for any contractor:

Repository

How we do it
Created in the client's organization from the first commit

Work rhythm

How we do it
Two-week sprints with a live demo at the end of each

Payment

How we do it
Tied to stages (for the MVP sprint — 50% at the start, 50% at release)

"Not included in this stage" list

How we do it
Recorded at the brief

Handover

How we do it
After launch, documentation and all access are handed over

NDA

How we do it
On your template or ours

We're ready to walk through these points and show them in the contract before the start — check us against this very article.

Tell us about your task — we'll review your request and get back to you

Got a project?
We'll scope and estimate it — for free.

Tell us about the product or the problem. After reviewing the task we'll come back with an architecture, a timeline and a price for the first version.

  • Scope and risks estimated before we start
  • NDA — yours or ours
  • Work starts within a week

Please do not send passwords, access keys or source code through this form — we will agree a safe way to share access separately.

By clicking the button you agree to the processing of your personal data.