Contract template for software developers

The expensive arguments in software come after delivery. The client thinks a missing feature was in scope; you think it is a change request. A production bug appears four months later and the client expects a free fix. The contract should define acceptance testing for each milestone, the warranty period after it, and what counts as a defect versus new work.

Ownership is the other one. Clients usually want the code assigned to them; developers usually reuse their own libraries across projects; and every project includes open-source packages under their own licences. A clear clause on what is assigned, what is licensed and what stays under its open-source terms saves a lawyer's bill later.

Not legal advice. This is a plain-language starting point, not a contract drafted for your situation or your country. For anything large or unusual, have a lawyer where you work read it before you sign.

Clauses specific to software developers

The clauses every freelance contract needs

A plain-language sample

Copy it, fill in the brackets, and cut what doesn't apply. Shorter is fine as long as the scope, the money and the rights are clear.

1. Parties

This agreement is between [Your name or business], the software developer ("we"), and [Client legal name], the client ("you"), and starts on [date].

2. The work

We will deliver the work described in quote [number], dated [date]. Anything not listed there is outside this agreement and will be quoted separately before we start on it.

3. IP assignment

On full payment, the developer assigns to the client the rights in code written specifically for this project. The developer keeps its pre-existing tools and libraries and grants the client a licence to use them within the delivered software.

4. Open-source components

The software may include open-source packages, which remain under their own licences. The developer will not knowingly include components whose licence would require the client to publish its own source code without telling the client first.

5. Acceptance testing

The client tests each milestone within 10 working days against the agreed spec. Defects reported in that period are fixed at no charge. A milestone with no reported defects counts as accepted.

6. Warranty period

For 30 days after acceptance, the developer fixes defects in its own code free of charge. Issues caused by changes made by others, new requirements or changes to third-party services are billed as new work.

7. Repository and access

Code is kept in a repository the client can access. Full access and deployment credentials are handed over when the related invoices are paid.

8. Third-party services

Costs for hosting, APIs and other services are paid by the client. The developer is not responsible for outages or price changes of those services.

9. Fees and payment

The fee is [amount and currency]. We invoice [a deposit of X on signing and the balance on delivery / monthly in arrears]. Invoices are due within [14] days. If an invoice is more than [14] days late we may pause work until it is paid.

10. Changes

The quote includes [number] rounds of revisions. Further changes, or changes to work you have already approved, are charged at [rate] once you have agreed to the cost in writing.

11. Delays

Dates in the quote assume you send feedback and material on time. If you are late, the dates move by at least the same amount.

12. Confidentiality

We both keep the other's non-public information confidential, during this project and after it ends.

13. Ending the agreement

Either of us can end this agreement with [14] days' written notice. You pay for the work done up to the end date, and anything already paid for is yours to use under the terms above.

14. Liability

Neither of us is liable for indirect or consequential losses. Our total liability under this agreement is limited to the fees you have paid under it.

15. Law

This agreement is governed by the law of [country], and disputes are heard by the courts of [city or country].

Signatures

Software developer: [name, date]. Client: [name, title, date].

Questions software developers ask

Who owns the code a freelance developer writes?

It depends on the contract and the country. In many places the author keeps copyright unless it is assigned in writing. If the client needs to own the code, the contract should assign it, usually on full payment, and say what happens to the developer's existing libraries.

How long should a software bug warranty be?

Long enough for the client to use the software in production, often 30 to 90 days. Keep it limited to defects in your own code against the agreed spec, not new requirements or problems in hosting and third-party services.

What is code escrow and do I need it?

Escrow means a copy of the source code is held by a third party and released to the client if the developer stops supporting it. It is mostly used when the client licenses software rather than owning it. For bespoke work where the client gets repository access, it is rarely needed.

Get it signed without printing it

OIO has contract templates built in (service agreement, retainer, IP assignment, NDA) that you edit to fit, sign in the Sign app and send as a PDF. The contract sits next to the project and its invoices. Free plan, no card.

Start free

Also for software developers: invoice template and quote template. Contract templates for related trades: web developers, game developers, data analysts, UX designers. Or browse all contract templates.