I built a free contract checklist tool that scans a pasted contract for missing clauses. Writing the checks made it obvious which 6 clauses actually matter — the rest is boilerplate.
1. Scope and acceptance criteria
"Build a website" is a conversation topic, not a scope. Name the exact deliverable, format, and how the client verifies it is done. Without this, every revision request becomes an unwinnable argument about what you actually promised.
2. Acceptance deadline with an auto-accept clause
Give the client a fixed number of days (3-5 business days is typical) to approve the work or send written feedback. State that silence past the deadline counts as acceptance. Without this clause, a client who goes quiet can block you from ever formally closing the project -- and from invoicing with a clean paper trail.
3. Payment terms with a real late fee
Net 15 or Net 30 from invoice date, not "on completion." Add a concrete late fee (commonly 1.5%/month on the overdue balance) and the right to pause work once payment is overdue. A deadline with no penalty attached is a suggestion, not a term.
4. IP assignment, tied to a specific moment
"Client may use the work" is not an assignment. State explicitly whether full rights transfer -- and from what moment, usually full payment, not delivery -- or whether it is a license. Skip this and default copyright law applies, which can mean the client is not the sole legal owner even after paying in full.
5. Confidentiality / NDA
If the work touches client data, system access, or business information, a confidentiality clause (or separate NDA) protects both sides and makes clients more comfortable sharing what you actually need to do the job well.
6. A plan for when the client disappears
A kill fee for mid-project cancellation, combined with clauses 2 and 3 above, gives you a concrete written basis to invoice and collect -- instead of an unenforceable verbal understanding.
Full write-up: How to Write a Freelance Contract. The checklist tool above runs entirely in your browser -- nothing you paste is uploaded anywhere.
I also build small zero-dependency CLIs for freelance admin (invoicing, NDAs, time tracking) -- repo list here if that is useful to anyone.
Top comments (0)