A builder for your own contracts in Settings → Contracts. An agreement is a stack of blocks — Title, Subtitle, Heading, Numbered clause, Paragraph, Bullets, Fine print, Signature and Divider — each one reorderable and duplicable. Any numbered clause can be switched to ask the customer to initial it. Facts from the job — Project Name, Contract Price, Build Site — are inserted from a searchable list of plain-English names. Keep as many named templates as you need, grouped as build agreements, change orders, material supply, and workers & contractors, with a default for each, and read any of them filled in with sample values before you use it.
Also called: contract template builder · build my own contract · contract editor · construction contract template · initial each clause · merge fields
Blocks, not a wall of text
Title, Subtitle, Heading, Numbered clause, Paragraph, Bullets, Fine print, Signature and Divider. Add one, duplicate it, move it; clause numbers follow their position, so reordering never leaves a contract that counts 1, 2, 7, 4. Anything the builder cannot model is kept word for word as a custom block.
A builder who cannot see the structure of his own contract stops changing it — and keeps sending last year's wording.
The stored contract is the same document the customer page, the print and every signed copy already read, so nothing downstream had to change.
Tick the clauses they must initial
Switch on Ask the customer to initial this clause on any numbered clause, and the customer's copy asks for initials right there. The signature is refused until every one is done. The finished agreement is signed on the customer's own page.
The clauses that cause disputes — payment terms, site conditions, exclusions — are the ones a customer later says he never read.
Initials on the right clauses are worth more than a signature at the bottom of twelve pages.
The job's facts, picked by name
+ Insert field opens a searchable list of plain-English names — Project Name, Contract Price, Build Site — and drops the right field in where your cursor is. At signing, each one fills in from the job. The list narrows to the kind of contract: a crew agreement is never offered the homeowner's address.
A misspelt code does not fail — it prints itself, in a document a customer is being asked to sign.
Nobody should have to learn a syntax to put the price in their own contract.
A library grouped by who signs
Build agreements, change orders, material supply, and workers & contractors — each section lists its contracts with the default marked, and each has its own + New. A change order raised on a job now carries your own change-order agreement with that change's price, revised contract total and schedule impact, frozen word for word when the customer signs. Start from a finished contract in the contract library.
With one default for everything, adding a change-order template could quietly leave new build agreements without one.
Every place that picks 'the' contract for a customer now asks for the build agreement by name, because the alternative is sending a customer a crew agreement to sign.
- 1Open Settings → Contracts: your library, grouped by who signs — build agreements, change orders, material supply, workers & contractors.
- 2Click a contract's name to read it as the customer will. Edit, New and Duplicate open the builder in its own window.
- 3Add blocks — a Numbered clause, Fine print, a Signature — and move them into order; clause numbers follow their position.
- 4Switch on Ask the customer to initial this clause wherever it matters.
- 5Use + Insert field to drop in Project Name, Contract Price or Build Site; the list only offers the fields that kind of contract has.
- 6Mark one template the default for its category. A change order raised on a job uses your own change-order agreement, with that change's numbers.
A contract is the document a customer holds you to, and editing one used to mean editing text full of codes in double braces, with the whole editor on the page and nothing saying which contract it belonged to. Builders want to change a clause, add one that must be initialled, and see the result — not learn a syntax. So the agreement is built from blocks and facts are picked by name. It is lossless by construction: anything the builder cannot model is kept word for word as a custom block, and every real template is round-tripped through it on each check, because a builder that quietly loses a clause is worse than no builder — you would find out from a customer. And the fields on offer depend on the kind of contract: a crew agreement has no homeowner on it, so it is never offered the homeowner's address.
- Contract templates only editable as text full of codes
- No way to mark which clauses a customer must initial
- One kind of contract for customers, crews and suppliers alike


