Freelance Web Developer & Designer Contracts

November 16, 2015

Categorized: Non-Technical, Webdev 101

I am a thousand percent not a lawyer. Do not rely on this resource alone to build your contract. This information is provided without any guarantees. This information is not legal advice. You really shouldn’t be relying on a web generalist for your legal advice.

Again, I strongly encourage research and consultation for your freelance contract. I also remind you that jurisdictions vary: your town, county, state, or country might be totally different from what you read here or elsewhere on the Internet. Get a real lawyer to verify your contract and ascertain you’re within the legal constraints of your jurisdiction.

One of my family members did corporate law for many, many years and she helped with my contract. I also spent a long time hanging around freelancer forums. And, of course, taking on freelance projects (both with and without a contract — I do not recommend the latter).

Things to Remember About Contracts

Contracts are Paper

Contracts really are just paper. Don’t expect someone to abide contract terms just because the terms were signed. Protect yourself: don’t rely on your “paper shield” to do so. Use technology wherever possible to force contract adherence. For example, don’t work on the client’s server and don’t give them any work until you’re paid. Show them screenshots instead of live code. Use an automatic invoicing system to remind them to pay (and stop working if they stop paying or stop talking).

Contracts Guarantee Nothing

Even if the client breaks the contract, it may not be possible for you to get your money. Contracts are not an iron-clad guarantee of payment — particularly if the client is halfway around the world and in an entirely different jurisdiction. It’s also not always worth it to pursue a broken contract. You might wind up with more legal fees than payments. There is also always the possibility of loss (again, especially if you don’t get a lawyer to review your contract).

Contract Expiration

An unsigned contract should expire after 30 days. This is so the client can’t go silent and come back a year later expecting the same pricing. Your prices may have increased, and you deserve to be paid at your new rate. You’ve learned more and gained more experience in the last year.

Milestones and Features

Your contract should list milestones, completion dates, expected work to be done by those milestones. This is often one of the toughest parts of freelancing, particularly if you haven’t quite figured out timing yet, and particularly if you’re working with new technology. Do your research in this area in particular, but remember no one else will be able to estimate how long it will take you to do something for you.

Precise Outline of Features

The contract should describe what, exactly, the client is getting. A list of features is optimal. You can’t recycle this from one contract to the next — it should be hand-written for each project. You might use pieces of a template for certain things (e.g., responsive design, WordPress work) but you should take care that this part of the contract is tailored to the individual project.

Changes in Scope

The contract should also include information regarding how a change in features or hours will be handled. This can differ depending on whether you’re doing a flat fee project or an hourly project.

This is important for avoiding scope creep, wherein the client starts with one idea… and ends up adding new features, removing old features, and generally causing several times the amount of expected work thanks to changes. It’s very important for you to be able to charge for that extra stuff: you do not want to work for free. Changes in the initial agreed scope is you doing work for free. That’s why it’s so important to precisely define the features the client wants.

Payment Terms

  • Explain the costs of the project: a lot of clients seem to enjoy detailed break-downs. Explain why you’re charging what you’re charging.
  • Explain how you’ll be paid.
  • Specify you’ll take a deposit (yes, take a deposit — 33-50%). Specify you need to be paid on each milestone. Specify you’ll need to be paid before final code is delivered to the client.

Not directly related to contracts, but don’t work for free. It sucks, you’re less likely to complete the work, and the “promised kickbacks” are often forgotten (Chris Lema recounts a particularly painful experience with this in Professional WordPress).

Communication Standards

Your contract should include stipulations regarding communication. For instance, you may:

  • Expect the client to reply to any request for information within a number of days.
  • Expect the client to deliver any requested materials within a number of days.
  • Require the client to adhere to certain means of communication for certain tasks (e.g., e-mail for feedback).

What happens if the client fails to respond to a request? What happens if you fail to respond to a request?

Ofren, you’ll stipulate as above: the client needs to reply to your request in a reasonable amount of time, otherwise the deadline gets pushed back. It isn’t reasonable for the client to fail to respond… then expect you to finish three weeks of functionality in three days! You may not have been able to make progress on their project while waiting for a response. If your request for information was critical and the client hasn’t responded, you may want to:

  • Ask a second time for the information.
  • Warn the client that a failure to respond within X days will result in a cessation of work.
  • Stop working.

Some contracts allow a little bit of wiggle-room, defining certain situations where it’s acceptable to temporarily cease communications. For instance — a natural disaster or other unforeseeable “act of God” is a pretty good reason for a lull in communication (in a small business-small agency/individual relationship).

Phone-Specific Advice

Phone Hours

Do you give the client your phone number? Set phone hours. You do not want to field calls at 3 AM. It’s imperative to set boundaries early on with clients. You may have more than one client, and if each of them acts as though they are your only customer, with free reign to contact you whenever they please — it will probably get pretty tough for you to juggle everything.

Phones and Verbal Change Requests

Do you prefer change requests in text? You might want to. Making someone write something down into an e-mail often makes them think it through. With verbal or phone change requests, they may not be fully considering all of their requests. The next call might be, “Well, I changed my mind about x, y, z.” Additionally, with verbal requests, it’s more difficult to be on the same page.

If you do accept phone calls, it may be a good idea to get into the habit of immediately e-mailing the client with a brief transcript and what you got out of the conversation. This gives them an opportunity to correct anything that was misunderstood, and also provides a paper trail for the conversation.

You don’t want to be six months deep into a project with the client questioning decisions from two months ago — especially if you don’t have a paper trail. Neither of you will completely remember your decisions and reasons for those decisions. Having the paper trail is immensely useful as reference materials — for you and the client.

Other People

Your Client

You might want to enforce a single point of contact for the project. You don’t want, for instance, an entire department e-mailing you with change requests. Some of those requests are going to overlap and conflict. That leaves you with the responsibility of sorting everything out and figuring out what they actually want. On the client’s end, if it’s a major project with a lot of people involved, it’s the client’s responsibility to organize themselves and provide clear direction for you (unless you are being given fair compensation and the correct opportunity/environment for directing their project).

Other Freelancers

You will want to specify any other freelancer the client hires for the project must be pre-approved by you. You don’t want, for instance, the client to decide you’re working “too slowly” and hire another freelance developer in the middle of the project.

Similar to the point regarding a large department, you also don’t want the client to decide you must be the point of contact for their freelance illustrator. It’s their responsibility to coordinate their other freelancers. You don’t want to do their project management for them (unless you can, you want to, and they’re paying you for it).


Your contract should include stipulations that you will not deliver the finished product before you receive final payment. Don’t work on their live server and don’t give them a line of code until you receive final payment. Seriously. Don’t.

Maintenance and Bugfix Terms

30-Day Maintenance

It’s customary to give 30 days following final delivery for bug discovery. Thereafter, you may specify you’ll support the site only with a retainer fee. If you want to, that is — you can also specify maintenance is their responsibility, but make that very clear in discussion stages. Some clients want a freelancer open for maintenance retention.

Either way, though — you don’t want to end up supporting your website for free three years later. It’s not sustainable.

Future Security and Update Concerns

You will want a clause releasing you of liability for future security and update concerns. If you are not responsible for the maintenance and updates to their system, you don’t want them to come back demanding fixes after their three-years-out-of-date WordPress was hacked.


What happens if the client wants to cancel, and what happens if you want to cancel?

Contracts may include a “kill fee” if the client wants to cancel. Sometimes that happens, and you do deserve to be paid for your work. The kill fee is not only for the labor you’ve done, but your loss in other income for setting aside calendar time for this client. You could have used that time for other clients. It’s a double hit to you if you aren’t compensated for that time and work.

To draw parallels to other work:

  • It’s the same reason why a t-shirt printer might take a deposit and keep it on cancellation. If you change your mind a few days later, while the order can still be canceled, the printer has lost time in taking a quote, artwork edits, and ordering goods. They’ll need to pay a restocking fee — assuming the goods can be returned. Even if you don’t want what you initially ordered, for whatever reason — the printer still deserves compensation for work completed.
  • It’s the same reason why a restaurant might charge for alcoholic drinks or food served and placed on the table, even if the guests do not drink the beverages and decide they’d prefer to leave. The restaurant (legally, in my jurisdiction) can’t re-use the items. It loses money if the items aren’t purchased.

If you’re working on your own, you are no less a business than the aforementioned scenarios, and in the event that there’s a cancellation on behalf of the client, you do deserve compensation.

Of course there’s the thing — if you stopped responding to the client or destroyed your work by failing to back-up, yes — you do deserve the hit (just like the t-shirt printer who prints crookedly and the restaurant that serves a fly in a drink deserves the hit). That’s the danger of doing business.

Fortunately, you don’t have to bend to every whim — you don’t have to comp food for unruly diners upset about the lighting and you don’t have to return comp an entire order of shirts for a single shirt printed a millimeter out-of-line, you don’t have to offer ridiculous terms of maintenance or bug-free guarantees. You don’t want to be supporting sites you built five years ago for free, after all — that’s not sustainable, and eventually you’ll be doing more free maintenance than paid work.

Similarly, you don’t have to work with a client who becomes demanding, rude, or disrespectful. You might be able to walk away, shipping your work so far while keeping the client’s deposit for work rendered. That’s if your contract stipulates it and depending on your jurisdiction, of course, but in general — yes, you should be paid for work you’ve already done and time you’ve already dedicated, even if you won’t complete the project.

What Happens in Disputes

This is the part that you don’t ever really want to have to use. Ideally, you should try to discuss any issues you have with clients… but if you do have to bring up a legal dispute, this is the part that helps to protect you and also, for the thirtieth time, the part you should really have a lawyer scrutinize.

The section on disputes should essentially stipulate how and where it’s handled: in my case, my contract stipulated arbitration in my county court. In my case it also stipulated that the client was responsible for court fees, etc. as once after resorting to an actual legal dispute, recouping the freelance money less legal fees is not a pleasing prospect.