Skip to content

Web development contract template

The two things a development contract has to settle are when work is finished and who owns the code. This one ties acceptance to written criteria, gives a warranty with a real boundary, and assigns the custom code on final payment while keeping your own libraries yours.

Free to copy and use. Nothing to download, no email required. Replace anything in [SQUARE BRACKETS] with your own details.

Acceptance has to be a test, and silence has to mean something

Tie acceptance to the written criteria in the scope, give a UAT window of [10] business days, and say that the milestone is deemed accepted if the window passes without a written defect report. Without deemed acceptance, an unresponsive client can leave a finished milestone permanently uninvoiced. With it, you have a fair, predictable end to every stage.

Assign the custom code, licence your own toolkit

The client should own what you wrote for them. They should not accidentally own the boilerplate you have carried between twenty projects — so assign the project-specific code and grant a perpetual, royalty-free licence for anything pre-existing that ends up embedded in it. Say clearly that open-source components stay under their own licences, since assigning code you do not own is a promise you cannot keep.

Handover means credentials, and credentials mean a date

Repositories in the client's organisation from day one, secrets in a secret manager, and a written handover of every account at the end. Put it in the contract with a deadline. Developers get dragged back into dead projects for years because they are still the only person who can log in to a DNS panel, and because nobody ever wrote down when that responsibility ended.

Classification, data, and access are local questions

Contractor classification, IP assignment formalities, data-protection duties when you touch personal data, accessibility obligations, and enforceable liability caps all vary by jurisdiction. If this project processes personal data you likely also need a data processing agreement. Have a lawyer in your jurisdiction review this before you rely on it.

The contract template

Copy the whole thing, or select the parts you need. The numbers and dates are examples — change them to yours before sending anything.

Web development contract template

WEB DEVELOPMENT AGREEMENT

Made on [2026-01-10] between:

CLIENT: [Client legal entity name], of [registered address] ("Client")
DEVELOPER: [Your legal name or entity], of [address] ("Developer")

1. THE WORK
1.1 Developer will build the software described in the statement of work
    dated [2026-01-08], attached as Schedule A (the "Work").
1.2 Schedule A governs the description of deliverables and acceptance
    criteria; this agreement governs everything else.
1.3 Developer will perform the Work with the skill and care expected of
    a competent professional developer, following reasonable current
    practice for security and maintainability.

2. MILESTONES, FEES, AND PAYMENT
2.1 Total fee: $[15,000.00], across the milestones in Schedule A.
2.2 Each milestone is invoiced on acceptance under clause 3. Invoices
    are payable within [30] days.
2.3 Approved change requests are billed at $[110.00] per hour.
2.4 Late payment accrues interest at [1.5]% per month, or the maximum
    permitted by law in [jurisdiction] if lower. If an invoice is more
    than [14] days overdue, Developer may suspend work and withhold
    deployment until it is paid.
2.5 Third-party services — hosting, domains, monitoring, paid libraries
    — are Client's cost. Developer will buy them in Client's name where
    possible, or bill them at cost with receipts.

3. ACCEPTANCE
3.1 Each milestone is deployed to staging with release notes listing
    what is included.
3.2 Client has [10] business days to test against the acceptance
    criteria in Schedule A.
3.3 A milestone is accepted when Client confirms in writing, or when the
    testing window closes without a written report identifying a
    specific criterion that has not been met.
3.4 Defects are graded S1 to S4 as defined in Schedule A. An S4 — the
    software doing something the criteria never described — is a change
    request under clause 4, not a defect.
3.5 Developer fixes S1–S3 defects reported during the testing window at
    no charge, and re-submits for acceptance.

4. CHANGES
4.1 Either party may propose a change. Developer responds with a written
    change request stating the estimated hours and schedule impact.
4.2 No work starts until Client approves the change request in writing.
4.3 If an approved estimate will be exceeded by more than [10]%,
    Developer stops and seeks re-approval before continuing.

5. CLIENT RESPONSIBILITIES
5.1 Named product owner with authority to accept milestones.
5.2 Credentials, test data, content, and third-party API access by the
    dates in Schedule A.
5.3 Testers available within the windows in 3.2.
5.4 Delay by Client moves the schedule day-for-day. Delay beyond [10]
    business days may be billed at the hourly rate in 2.3 for
    re-familiarisation and re-booking.

6. INTELLECTUAL PROPERTY
6.1 On payment in full for a milestone, Developer assigns to Client all
    intellectual property rights in the custom application code written
    for that milestone, worldwide and in perpetuity.
6.2 Until payment, Developer owns that code and Client's licence to use
    it is limited to internal testing.
6.3 Open-source and third-party components remain under their own
    licences. Developer will maintain a list of them and their licences,
    and will not include anything whose licence conflicts with Client's
    intended use.
6.4 Developer's pre-existing libraries, boilerplate, tooling, and
    know-how remain Developer's property. Where any is embedded in the
    Work, Client receives a perpetual, worldwide, royalty-free,
    non-exclusive licence to use, modify, and host it as part of the
    Work — but not to sell it as a standalone product.
6.5 Developer may describe the Project in a portfolio and case study,
    and may reuse general techniques and knowledge gained, without
    disclosing Client's confidential information or code.

7. SOURCE CONTROL, CREDENTIALS, AND HANDOVER
7.1 All code lives in a repository owned by Client's organisation from
    the first commit.
7.2 Secrets are stored in [secret manager], never in source control.
7.3 On final acceptance, and in any event within [10] business days of
    termination, Developer transfers or removes its access to all
    Client accounts and provides a written handover listing every
    service, its owner, and its renewal date.
7.4 After handover, Developer has no responsibility for the operation,
    security, or availability of the Work.

8. WARRANTY AND SUPPORT
8.1 For [30] days after production launch, Developer will fix, at no
    charge, defects where the Work does not behave as the accepted
    criteria describe, on the browsers and devices listed in Schedule A.
8.2 The warranty does not cover: new or changed requirements; content
    changes; failures of third-party services or APIs; changes made by
    Client or another supplier; environments outside the support matrix;
    or problems caused by declining a recommended update.
8.3 After the warranty period, support is available under a separate
    agreement, or at $[110.00] per hour with no committed response time.
8.4 Except as stated in 8.1, the Work is provided without further
    warranty. Software is not warranted to be error-free.

9. DATA AND SECURITY
9.1 Where Developer processes personal data on Client's behalf, it does
    so only on Client's documented instructions and under [the data
    processing agreement dated [date]].
9.2 Developer will apply reasonable technical measures — encryption in
    transit, access control, tenancy scoping on every query touching
    customer data — and will tell Client without undue delay, and in any
    event within [48] hours, of any suspected breach.
9.3 Developer deletes its working copies of Client data within [30] days
    of handover, except where the law requires retention.

10. TERMINATION
10.1 Either party may terminate on [14] days written notice.
10.2 Either party may terminate immediately for a material breach not
     fixed within [10] business days of written notice.
10.3 On termination, Client pays for all work completed to that date and
     all committed non-cancellable costs. Intellectual property
     transfers only for work paid in full.
10.4 Clause 6 (IP), 7.3–7.4 (handover), 9 (data), 11 (liability), and
     12 (general) survive termination.

11. LIABILITY
11.1 Neither party is liable for indirect or consequential loss,
     including lost profits, lost revenue, or lost data.
11.2 Developer's total liability under this agreement is limited to the
     total fees paid by Client under it.
11.3 Nothing limits liability for death or personal injury caused by
     negligence, for fraud, or for anything that cannot lawfully be
     limited.
11.4 Developer gives no warranty about traffic, conversion, search
     rankings, or any commercial outcome.

12. GENERAL
12.1 Developer is an independent contractor, not an employee, and is
     responsible for its own taxes and insurance.
12.2 Confidentiality: each party protects the other's confidential
     information for [3] years after termination.
12.3 Governing law: [jurisdiction]. Exclusive jurisdiction of its
     courts.
12.4 Changes must be in writing; email is acceptable for change
     requests under clause 4.
12.5 This agreement plus Schedule A is the whole agreement.
12.6 If any clause is unenforceable, the rest stays in force.

CLIENT                             DEVELOPER
Name: ______________________       Name: ______________________
Title: _____________________       Title: _____________________
Signature: _________________       Signature: _________________
Date: ______________________       Date: ______________________

SCHEDULE A — STATEMENT OF WORK
[Attach the signed SOW: user stories with acceptance criteria,
exclusions, browser support matrix, environments, milestones, defect
severities, and the payment schedule.]

Generate the agreement from your project in PaloWorks

On Pro, PaloWorks generates a project agreement with the client, project, deliverables, revision rounds, timeline, and fee filled in from your scope — from its default agreement or one of 5 starter templates (design retainer, web & app development project, photography shoot, consulting engagement, mutual nda). You edit it as plain text before sending, and your client signs it online. It does not import this page's wording: paste in any clause you want to keep.

Free for one client and three active projects. Pro is $19/mo for unlimited clients and projects.

Use this with