Get a quote

What belongs in a website contract

A website contract should carry these clauses: scope and exclusions, the definition of delivery, who updates the site after launch, and whose name the accounts are in. Each clause closes a decision only when it names who acts, the moment it attaches to and what it leaves outside; miss one and the decision reopens after signature. The KGM SsangYong corporate site named the sections to leave alone only after the code was read.

You have finished comparing the offers and a draft is in front of you; the headings are all there and none of them looks wrong. What goes wrong in a draft is rarely the clause it contains but the line it leaves out. This page reads a draft through three questions: whom the clause puts to work, which moment it attaches to, and what it leaves outside. A fourth sits above them: whom does this sentence bind? A lawyer may have drafted it and the answers still begin with you. Choosing between candidates is the job of how to choose a software development company; this page opens with the candidate picked and the signature pending.

When a clause actually closes a decision

A clause closes a decision when it names three things: who acts, the event the action attaches to, and what it deliberately leaves outside. Miss one of the three and the line turns into a heading, comfortable at the table and useless in a disagreement.

The measure is not borrowed from anywhere. Our own Terms of Use name four items: delivery dates, payment, the liability cap and the transfer of intellectual property in the work we produce. All four are left to a separate contract that both sides sign, and the Terms add that the signed contract decides wherever the two differ about the work itself. Naming an item is not the same as settling it: it becomes a decision on the day its actor, its moment and its boundary are written down.

Not every decision has to close. Some stay open because the input does not exist yet, and a clause can carry that honestly by naming who decides and when. An open decision lives inside the clause; an unwritten one lives nowhere, and the difference surfaces once the work is under way.

A smaller job has fewer clauses, and that is no fault. What does not shrink is the set of three questions: every line in a short draft still names the same three things.

Half of scope is the list of what will not be done

Most drafts write scope as a single list: the work to be done. A long list reassures and draws no boundary, because it can always grow. The boundary comes from the second list, and that list is usually missing.

The second list is the output of a reading, and no template produces it. The KGM SsangYong corporate site reached us while it was serving visitors, and the first decision on it was not technical: the parts that would stay shut were named once the code had been read. The reading produces two lists at once, the places that open and the places that do not. The service side of the same practice sits on the software consulting page.

The second list costs something, and both sides pay it: the job gets smaller. Once the boundary is on paper the clean rewrite comes off the table, and what remains are smaller moves inside the pattern the previous team left behind. That is what closing a decision means: both sides accept the same limit, and the same cost, before anyone signs.

A system built from scratch has no do-not-touch list, and the empty list is not a gap. The boundary moves to another list: the items that sit outside this job and belong to the next one. The question changes shape; it does not disappear.

A line that binds and a line that states an intention

Two kinds of sentence sit in the same draft. One says whom it binds. The other states an intention. The quickest way to tell them apart is to ask whether the sentence declares its own status.

Our published text shows what that declaration looks like. The Terms of Use name a window for a first reply and then call it a target we set ourselves rather than a promise anyone can enforce. The same section defines the binding sentence as well: we are bound only by a written quote that names the work and states how long it stays valid. The lesson there is not the rule but the drafting, because the binding is tied to conditions that sit inside the sentence.

Intention lines are easy to spot once you look for the label. Within a reasonable period, as required, to be agreed between the parties: none of them carries a measure. A contract is allowed to hold sentences that bind nobody; the fault is the missing label. A target with its status written down is an honest sentence; a target without one gets read as a promise, and at the first delay two people read one line in two directions.

What a clause written later leaves out

“We will sort that out later” sounds like flexibility. A postponed decision does not disappear; it moves to a worse moment. Bargaining power moves with it, because by then the work has already started.

Some classes of clause are postponed more often than others. Who updates which page after launch, and how often, is a planning item, written down with you on corporate website work while the plan is drawn. Maintenance and the line that returns every year is a question of its own, taken on by who maintains software after launch. The domain record, the hosting, the outside accounts and the items to be delivered each sit on their own line with their own test, counted in what you receive at software handover. This page names those lines and leaves their contents where they are already written.

The transfer of intellectual property is a class of clause too, and its home is not this page. Our published text leaves that decision to the signed contract, and this page does not reach past it. What you look for is not the extent of the transfer, but whether the moment it attaches to and the hands the access stays in are written anywhere.

Writing a clause later is not always a loss. Where the clause says how a change gets recorded, a later addition is a procedure rather than a surprise. The loss comes from the missing procedure, not from the timing.

The table below opens these questions into six rows: the left column closes the decision, the right column leaves it open. Run your draft down the rows, then put us through the same rows. Write what your business does today, and whether something is already running, into the quote form, and read the reply for these six lines.

Side by side

Criterion Drafting that closes the decision Drafting that leaves it open
Who does it The clause names a party or a role, and says who carries the work out and who signs it off. The clause is written in the passive. Something will be delivered or provided, and no sentence says by whom.
What moment it attaches to The clause attaches to an event both sides can see from outside: going live, payment in full, a signed acceptance record. The clause says within a reasonable period or as soon as possible, so whether the moment has passed is open to argument.
What it leaves outside Scope is written as two lists, the work and the exclusions. The second list draws the boundary and shrinks the job. Only the list of work exists. It can always grow, so it draws no boundary at all.
Whom it binds The clause declares its own status, binding or target, and a binding clause carries the conditions that bind it. The clause states an intention without saying so, and an unlabelled target gets signed as a promise.
How much, how often Anything countable is written with its number inside the clause, and what the number counts sits beside it. The clause says enough, as required or when needed. With no measure there is no moment at which it has been exceeded.
What happens if it changes The clause carries the procedure for a change: who asks, in what form it is recorded, how the price is set. The clause says changes will be agreed between the parties. With no procedure, every change reopens the negotiation.

Questions this decision raises

  • The other side drafted the contract. What do I actually look for?

    You look for three things in every clause: who carries it out, which event it attaches to, and what it leaves outside. A clause that answers none of the three is a heading, not a decision. A heading is easy to sign and expensive later, because the conversation it postponed comes back. List the clauses in your draft that answer nothing, send them to the other side in writing, and ask for the answer in writing too.

  • Every clause is there, but nothing sounds concrete. How do I tell the difference?

    You tell the difference by sorting each clause into one of two boxes: it either closes a decision or states an intention. A closing clause names the actor, the moment that binds it, and the exclusion. An intention clause says 'within a reasonable period' or 'as required', and binds nobody. Our own Terms of Use draw that line out loud: the first-reply window is a target, not a commitment. Put every clause in your draft into one of those two boxes.

  • How should the domain, the source code and the admin access appear in the contract?

    They should appear as three separate lines: whose name the registration is in, who holds the access, and which moment transfer is tied to. Our own Terms of Use leave the transfer of intellectual property to the signed contract, which is where that decision belongs. Which items get tested one by one on handover day is covered in our piece on software handover. If one of those three lines is missing from your draft, have it written in before you sign.

  • This page belongs to an agency. Why does it not say what your own contract contains?

    It does not, because those sentences belong in a signed contract, not on a page. Our Terms of Use leave delivery, payment, the liability cap and the transfer of intellectual property to that contract. What this page carries is a way to test a clause, and you can apply it to us. The KGM SsangYong corporate site had the limit of the work written down after the code was read. Ask the same three questions of every candidate on your list.

Want to settle the decision together?

Tell us what you are choosing between and we will see which option fits.