A developer sends you a PDF titled "Invoice." It lists the total price, their bank account details, and a one-line description: Website design.
You pay the 50% deposit. Two months later, you are arguing on a WhatsApp voice note because the developer refuses to add a contact form unless you pay extra, and you refuse to pay the balance until they do.
Most Nigerian web projects run on vague WhatsApp agreements and one-page invoices. This is the root cause of almost every dispute in the industry.
A proper web development agreement does not just protect the developer from scope creep; it protects you, the client, from being held hostage. If you are about to sign off on a project, here are the specific clauses that must be in writing before you transfer a single Naira.
(Note: We are software engineers, not lawyers. For large-scale enterprise projects, always have a qualified Nigerian legal professional review your contracts.)
1. Scope (and what is explicitly excluded)
Vague scope is the enemy. If your contract just says "build an e-commerce website," you are going to fight over what that means.
The contract must itemise the deliverables. How many pages? Will it integrate with Paystack or Flutterwave? Does it include a blog?
Equally important is a section stating what is not included. A professional contract will explicitly state whether things like logo design, writing the website copy, or purchasing the domain name are excluded from the quote. If it is not in the scope document, do not expect the developer to do it for free.
2. Payment milestones
Never accept a contract that demands 100% upfront payment. You lose all your leverage.
The industry standard in Nigeria is milestone billing. For a typical corporate website, a 50% deposit to begin work and 50% upon final delivery and launch is standard.
For larger software projects, the payments should be tied to tangible progress. A fair structure is 30% upfront, 30% after you approve the design mockups, 30% when the development is complete (but before it goes live), and the final 10% after launch and testing.
3. Domain ownership and IP transfer
This is the most critical clause in the entire document.
Your contract must explicitly state two things:
- You are the sole legal registrant and owner of the domain name (e.g.,
yourbusiness.com.ng), even if the developer purchases it on your behalf. - The Intellectual Property (IP) of the website—the custom code, the design, and the content—transfers entirely to you upon the final payment.
If this is not in writing, the developer can legally argue that they own the codebase and can hold your website hostage if you try to move to another agency.
4. Handover of code and backups
When the project is finished, what exactly are you getting?
The contract should guarantee that upon final payment, you will receive full administrative access to the hosting control panel, the Content Management System (like WordPress admin access), and a complete backup file of the source code and database.
If a developer refuses to include this clause, it usually means they intend to lock you out of your own site to force you into paying arbitrary maintenance fees.
5. Revision limits
"Unlimited revisions" is a lie. If an agency promises you unlimited revisions, they are desperate for the job and will eventually abandon the project when they get tired of your changes.
A healthy contract limits revisions to protect both parties. A standard clause allows for two or three rounds of revisions during the design phase. If you decide you want to completely change the layout after approving the third round, the contract should specify an hourly rate for those extra changes.
6. Timeline and what happens when it slips
Your contract should state a clear launch date. But software development is notoriously difficult to estimate.
The agreement should outline what happens if the timeline slips. If the developer vanishes for three weeks, do you have the right to terminate the contract and demand a partial refund?
Conversely, the contract will likely hold you accountable for delays. The most common reason a website launch is delayed is because the client took four weeks to send the developer the company logo and text. A good contract will state that if you fail to provide the required materials within a certain timeframe, the project is paused.
7. Post-launch support and warranty
A website is software, and software has bugs. When a real user tries to fill out your contact form on an old Android phone and it crashes, whose job is it to fix it?
Your contract should include a warranty period—usually 30 days post-launch—where the developer is legally obligated to fix any bugs in their code for free. Anything outside of that 30-day window should be covered by a separate, paid maintenance agreement.
8. Termination clause
Sometimes, the relationship just breaks down. The developer stops replying, or you run out of money.
The contract must have a "kill switch" that explains how either party can walk away. It should specify who owns the half-finished code, how much of the deposit is refundable depending on the work completed, and the notice period required to cancel the project.
How we handle contracts
At TideRelay, we do not build websites on WhatsApp promises. Every project we take on, from a simple corporate site to a complex vendor portal, is governed by a clear, plain-English Statement of Work.
We guarantee IP transfer upon final payment, we explicitly list what is included in our quotes, and we publish our base rates transparently on our pricing page so you know what to expect.
If you are about to hire a developer who handed you a one-line invoice and you are feeling nervous, pause. Contact our team today for a professional proposal that actually protects your business.
Have a project in mind?
Get a fixed quote from a Port Harcourt team.
