Free download

Web Development Contract Template (Free Download)

For build projects: marketing sites, web apps, integrations. It covers milestones, change requests, code ownership, warranty and handover. Change the five clauses below before you send it.

5 clauses to change before you send it

1. Milestones and payment

Split payment by milestone, not by date. Each milestone should have an acceptance criterion and a fixed review window, so silence does not stall the next payment.

2. Change request process

Define how new requests are priced and approved in writing. Without it, every “small addition” becomes free work.

3. Code ownership and dependencies

Transfer the custom code on final payment, but carve out pre-existing libraries, frameworks and your own tooling. List third-party licenses the client must keep.

4. Warranty period

Offer a defined bug-fix window (30–60 days) for defects against the agreed spec — and state clearly that new features and third-party changes are not covered.

5. Handover and hosting

State who owns accounts, domains and infrastructure, and what happens after handover. Ambiguity here is the most common cause of a client holding your work hostage.

Local differences

EU: if the site processes personal data, a DPA may be required and GDPR obligations should be allocated. US: state law governs warranty disclaimers. UK: check IR35 implications if you work through an intermediary.

What this development contract covers

Milestones and acceptance, change control, payment, code ownership and third-party licenses, warranty, handover, liability and termination.

How to use it

Attach the technical spec and the milestone table as schedules. If there is no written spec, write one first — a contract cannot compensate for an undefined scope.

Frequently asked

Should the client own the code?

Usually yes, for custom code, after final payment. Keep ownership of reusable libraries and internal tooling, and list third-party licenses.

How long should the warranty be?

30–60 days for defects against the agreed specification is common. Separate maintenance contracts cover everything else.

What if the client wants changes mid-sprint?

Log it as a change request with an estimate and a written approval. This protects both sides.

Who owns the hosting account?

The client should own accounts and billing. You get access, not ownership — that is what makes handover clean.