WaffleInvoice Blog

Practical invoicing tips for freelancers and service businesses.

Blog Post

How to Write a Freelance Contract: 8 Essential Clauses Every Freelancer Needs

Learn how to write a freelance contract that protects your work, guarantees payment, and prevents scope creep.

May 10, 202611 min read
marker, the body is split so a live inline calculator renders in place; otherwise the body renders whole. -->

How to Write a Freelance Contract: 8 Essential Clauses Every Freelancer Needs

A freelance contract is the single most important document in your business, because it locks down what you deliver, when you get paid, and what happens when a project goes sideways. Skip it and every job becomes a handshake deal, and handshake deals hold right up until the moment two people remember the agreement differently. I lost roughly three weeks of income early on to a client who decided, after delivery, that "a website" had always meant five rounds of revisions and a logo I never quoted. There was nothing in writing, so there was nothing to point to.

Most freelancers skip contracts anyway, especially starting out. The project looks small, the client seems decent, and drafting an agreement feels like overkill. Then come the fifth revision request, the six-week payment delay, the ghosting after final delivery, and that missing contract turns into the priciest shortcut you ever took. This guide covers the eight clauses every freelance contract needs, what each one actually protects, and the mistakes that bite people who draft their own.

Why Every Freelancer Needs a Contract

Contracts are not a sign you distrust the client. They are a tool for getting everyone aligned before anyone starts, instead of after a disagreement has already curdled the relationship. Here is what a contract buys you.

It makes payment terms enforceable. No written agreement, no real basis to chase money. Spell out net-30 terms, a deposit, and late fees, and suddenly you have leverage when a client stalls.

It boxes in scope creep. Once the deliverables are written down, every "can you also..." has a reference point. Anything past the documented scope is a change order with its own timeline and its own price.

It protects your intellectual property. In a lot of jurisdictions, you keep copyright on your work by default, even after delivery. A contract says exactly when and how ownership moves to the client, which is almost always on final payment.

It gives you a clean exit. Projects collapse, clients disappear, budgets get axed. A termination clause lets either side walk without torching the relationship or eating money already earned.

The 8 Essential Clauses

Every freelance contract should cover these eight areas. Leave one out and you have built a gap that turns into a dispute the day expectations stop matching reality.

1. Scope of Work

Scope is the foundation the rest of the contract sits on. It says exactly what you deliver, in what format, to what standard.

A weak scope clause reads: "Design a website for the client." A strong one reads: "Design a five-page marketing website (Home, About, Services, Portfolio, Contact) in Figma. Deliverables include two initial design concepts, one round of revisions per page, and final export of production-ready assets. Content population and development are not included." The second version tells you, instantly, whether any given request is inside the deal.

The tighter the scope, the easier it is to spot when a request falls outside it. Specificity is not rigidity, it is armor. You can always add work through a change order, but you cannot subtract work that was never pinned down in the first place.

Tip: if you send estimates before starting projects, that estimate can become the basis for your scope clause. A lot of freelancers just attach the accepted estimate to the contract as an appendix and call it the scope.

2. Payment Terms

Payment terms answer four questions: how much, when, how, and what happens if the client misses the date.

How much: the total fee or your hourly rate. On milestone work, list each milestone with its payment.

When: the timing. Common structures are 50% deposit before work begins with the balance on delivery, milestone payments tied to deliverables, or net-15 or net-30 terms from the invoice date.

How: the methods you accept. Bank transfer, card, PayPal, whatever it is, in writing. This is what kills the "I'll mail you a check" delay.

Late fees: a penalty on overdue balances. The standard is 1.5% per month. Even if you never invoke it, its presence nudges people to pay on time. Learn more about structuring late fees.

Deposits: always take one before starting. The going range is 25% to 50% of the project value. A deposit confirms the client is serious and means you are not working free if they pull the plug in week two.

3. Timeline and Milestones

The timeline clause sets a start date, the key milestones, and the expected finish, and it should say what happens when dates slip and whose fault that slip is.

Add a line stating the timeline assumes timely feedback. When a client takes two weeks to review something you turned around in three days, the finish date moves with it. Without that language, you absorb every delay the client creates, which is exactly backwards.

On milestone work, tie each milestone to both a deliverable and a payment. That gives you natural checkpoints where both sides confirm the project is on track before anyone commits to the next stretch.

4. Revision Policy

Unlimited revisions is a promise no freelancer should ever make. Without a cap, a project expands forever and your effective hourly rate sinks with every extra round.

A clear revision clause names how many rounds are included (two is standard for most creative work), defines a "round" (one consolidated set of feedback, not a trickle of one-off tweaks), and says how rounds beyond the cap get billed.

Pitch the extra rounds as a service, not a punishment: "Additional revision rounds are available at $X per round." Funny thing happens once feedback costs money: clients suddenly manage to consolidate all of it into one tidy list.

5. Intellectual Property

The IP clause says who owns the work and when ownership changes hands. It is also one of the most misunderstood corners of freelance law.

In many places you keep copyright on your work by default, even after the client pays. Moving ownership to them takes an actual "work for hire" clause or an IP assignment clause. It does not just happen because money changed hands.

The most freelancer-friendly version reads: "All intellectual property rights in the deliverables transfer to the client upon receipt of final payment in full." No payment, no ownership. It is the strongest lever you have for collecting that last invoice.

Consider keeping portfolio rights too. A line like "The freelancer retains the right to display the deliverables in their professional portfolio and marketing materials" means you can still show the work that built your reputation.

6. Confidentiality

A confidentiality clause (the NDA clause) commits both sides to keeping sensitive project information private. It protects the client's business details and your own proprietary methods.

Keep it reasonable in both reach and length. A clause that bars you from ever mentioning any part of the project to anyone is too broad to be worth signing. One that protects the client's trade secrets, financials, and unreleased product plans for two years after the project ends is standard and fair.

Be wary of standalone NDAs before there is a project contract. If a prospect wants you to sign one before you can even talk through scope, treat that as a yellow flag. Sort out scope and fit first, then fold confidentiality into the project contract where it belongs.

7. Termination

Every project needs an exit ramp. A termination clause defines how either side ends the engagement and which financial obligations survive it.

A balanced version covers the notice period (14 to 30 days is normal), payment for all work done up to the termination date, the status of any deposit already paid (usually non-refundable once you have started), and what happens to work-in-progress.

One-sided clauses that let the client cancel without paying for finished work are a hard no. If the contract lets them walk after you have built 80% of the project with no obligation to pay, you are carrying all the risk for both of you. Hold the line on a kill fee or a payment-for-work-completed clause.

8. Dispute Resolution

Disputes happen even on good projects. This clause decides how they get resolved and keeps either side from sprinting straight to a lawsuit over something a phone call could fix.

A standard escalation path: first, the parties try direct negotiation within 14 days. If that fails, they bring in a neutral mediator. If mediation fails, it goes to binding arbitration or to court in a named jurisdiction.

Name the governing law and jurisdiction. If you are in Texas and the client is in New York, the contract should say which state's law applies and where any proceedings happen. Skip it and you can find yourself litigating in the client's backyard, which is both expensive and miserable.

Common Contract Mistakes Freelancers Make

Using a generic template untouched. A template is a starting point, not a finished contract. Every client and project differs, and something you grabbed online may miss the specific risks of your industry, your pricing model, or your local law. Read every clause and bend it to your situation.

Leaving out a scope-change process. Your contract nails the original scope, but what about when the client wants more pages or features mid-project? Without a change-order process, every addition turns into a fresh negotiation. Add a clause requiring scope changes to go through a written change order, with an updated timeline and fee, before work starts.

Agreeing to non-competes. A non-compete restricts your ability to work with other clients in the same field, and for freelancers that is almost always unreasonable. If you build restaurant websites and you sign a non-compete that bars you from other restaurants, you have just signed away your business. Push back, or narrow it to a tight, time-limited non-solicitation clause instead.

Skipping contracts on small jobs. A $500 project with no contract is every bit as exposed as a $50,000 one. The contract protects your time and your standing no matter the dollar figure. Use a stripped-down version for small work, but never go without one.

Never defining "done." Your contract should set acceptance criteria, the exact conditions that mean the project is complete. Without them, a client can claim the work is never quite finished and sit on payment indefinitely. Tie acceptance to something objective: delivery of named files, client sign-off inside a set review window, or a fixed number of days passing after final delivery.

How Your Contract Connects to Your Invoicing

A well-written contract makes invoicing almost mechanical. Your payment-terms clause says when invoices go out, your milestone structure sets the amounts, and your late-fee clause gives your follow-up emails actual weight.

The smoothest workflow I have found: contract signed, deposit invoice out the same day, milestone invoices as deliverables clear, final invoice on completion with IP transfer hanging on payment. That last hook does more to get final invoices paid than any reminder ever has.

WaffleInvoice drops right into that workflow. Build estimates that double as the basis for your scope clause, convert an accepted estimate into an invoice in one click, set up automatic payment reminders that echo your contract terms, and track every invoice from sent to paid in one dashboard.

The free plan covers unlimited invoices and clients, which is everything you need to start invoicing like a professional. Pro adds recurring invoices for retainer contracts, a client portal, and automated follow-ups that chase late payments so you are not the one sending the awkward third email. See pricing details.

The Bottom Line

A freelance contract is not a formality. It is the thing that separates people running a freelance business from people doing side work and hoping it holds together. Every clause in it exists to solve a specific problem that thousands of freelancers hit before you did.

Write it once, tailor it per project, and never start work without it. The version of you who gets paid on time, dodges scope creep, and can walk away from a bad project clean: that person is the one who took ten minutes to send the contract first.

Related reads: How to Write a Freelance Proposal · Payment Terms for Freelancers · How to Charge Late Fees · Invoice vs. Estimate · How to Invoice Freelance Clients

Ready to improve your invoicing?

WaffleInvoice makes it easy to invoice faster, get paid on time, and manage your cash flow. Start free today.

Sign Up Free