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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
The clauses every freelance contract needs
- Parties. Who the agreement is between: your legal name or business, the client's legal entity, and the addresses of both.
- Scope of work. What you will deliver, in what form, and what is explicitly not included. Refer to the quote or proposal by number if it lists the details.
- Fees and payment terms. The total fee or rate, the currency, any deposit, when invoices are issued and how many days the client has to pay.
- Late payment. What happens when an invoice is late: interest or a fixed fee if you want one, and your right to pause work until the account is settled.
- Changes and revisions. How many revision rounds are included, what counts as a change of scope, and how extra work is priced and approved.
- Timeline and client delays. Key dates, and that deadlines move when the client is late with feedback, content or approvals.
- Ownership and licence. Who owns the finished work and when (usually on full payment), what the client may use it for, and what you keep, such as your tools, templates and know-how.
- Confidentiality. Both sides keep the other's non-public information private, during the project and after it.
- Cancellation. How either side can end the agreement, the notice required, and payment for work done up to that point.
- Liability. A cap on what either side can claim, often the fees paid under the agreement, and no liability for indirect losses.
- Governing law. Which country's law applies and where disputes are heard. Usually where you are based.
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 freeAlso 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.