Guide
A website development contract with deposit, milestones and clear acceptance
Website projects go wrong for the same reasons: unclear scope, endless revisions, late content from the client and arguments about whether the work is finished. A contract that deals with each of these in advance protects both the developer and the client. This generator drafts a 14-clause website and software development agreement from your answers.
What you enter
Name the developer or agency and the client, and give the agreement date and a description of the project. List the deliverables, one per line, because anything not listed is outside the agreement. Then enter the money: a currency, the total fee, the deposit due on signing as a percentage and how many days the client has to pay each invoice. Type the milestones, one per line, as name | date | percent, such as “Design approved | 2026-12-10 | 40”.
Four numbers control the working relationship: how many rounds of revisions each milestone includes, how many business days the client has to give feedback, how many days to test and accept the finished site, and how long the bug-fix warranty lasts after launch. Two switches cover hosting and maintenance and the portfolio. Finish with the governing law.
How the money is laid out
Clause 3 states the total fee and the deposit, with the deposit amount worked out. The deposit is credited against the milestone payments, starting with the first, so the milestone shares are meant to add up to the whole fee. The milestone table lists each name, date, percentage and amount, and a total row shows the sum of the shares and the amount, which makes a mistake easy to see: a total of 90% or 110% is a signal to correct a line.
Scope, revisions and acceptance
Clause 5 limits each milestone to the rounds of revisions you set, with extras charged at the developer’s standard rate. Clause 6 lets either side ask for a change, which takes effect only when both agree its effect on fee and timing in writing. Clause 7 gives the client a set number of days to test the work against the deliverables and report defects. The work is accepted when the client confirms it, or when the period ends without a report. Clause 8 gives a warranty that errors that stop the work doing what the deliverables describe will be fixed free for a stated number of days, excluding changes by others and hosting problems.
A worked example
Press the first sample, a five-page marketing website from Northwind Design Studio for Harbour Goods Ltd, dated 10 November 2026. The fee is £6,500 with a 30% deposit, shown as £1,950. The table shows Design approved on 10 December 2026 at 40% (£2,600), Build complete on 20 January 2027 at 40% (£2,600) and Launch on 5 February 2027 at 20% (£1,300), totalling 100% and £6,500. There are two revision rounds per milestone, 5 business days to give feedback, 10 days to test and a 30-day warranty. The second sample, a web app with hosting at 18,000 dollars, uses a 40% deposit and milestones of 25%, 45% and 30%.
Working with the contract
Set milestones that map to approvals the client can really give, such as signed-off designs. Keep the deliverables list specific: “five page templates” beats “a website”. Agree who supplies content and by when. If you offer hosting, define what it includes and who pays for third-party services such as domains and licences.
Limits
This is a general template, not legal advice. It does not cover data protection duties, accessibility obligations, security testing or sector rules, and consumer and business law differ by country. Have a lawyer check it, particularly for larger projects.
Related tools
- Independent Contractor Agreement Generator suits ongoing consulting rather than a milestone-based build.
- Project Proposal Generator lets you present the scope and price before the contract.
- NDA Generator protects materials shared before the project begins.
- Quotation and Estimate PDF Generator produces a priced offer when a contract is not yet needed.
Checked against the current version of the Web Development Contract Generator on .

