Customer contract signing page

The customer reads the full agreement on letterhead, ticks the binding-signature acknowledgement, types their legal name, draws a signature and submits.

What it is

Stage three of the funnel at /client/[id]/contract. The agreement renders through a scoped markdown renderer with the tenant's accent so it reads like a real legal document. Once signed the page switches permanently to a read-only view so the customer can re-read or print their copy at any time.

Also called: e-sign the contract · sign the construction agreement · digital contract

See it, piece by piece
01

The agreement is read, acknowledged and signed on a phone

The customer reads the full agreement on your letterhead, ticks a binding-signature acknowledgement, types their full legal name and draws their signature; the button unlocks only when all of it is done. IP address, user agent and timestamp are recorded with the signature. A print, sign and scan cycle produces none of that and costs days at the exact point you want to order material.

Customer Signature
Customer Signature
Type your full legal name
Marla Zimmerman
Draw your signatureClear
Please initial all 4 sections above (3 of 4 done) before signing.
Sign & Submit Contract
Typed legal name and drawn ink — neither alone unlocks the button. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
02

Clause-by-clause initials, drawn once

For waivers and agreements that need it, the customer draws their initials once at the top and taps each required clause to stamp it, each with its own timestamp and a live counter of how many remain. The list of clauses that require initials is frozen onto the contract when it is generated, and the server re-checks every one before it accepts the signature. That is evidence each section was read, rather than one mark at the bottom of thirteen pages.

03

What they are signing for is restated above the legal text

A short recap names the project, a one-line building summary, the delivery address and the total in your accent colour. A customer reaching the agreement has usually not looked at their estimate for days, so signing is never a leap of memory. The recap prints with the document; the clauses themselves are not toggleable, because a checkbox has no business editing legal text.

04

Both signatures land in the printed copy

The customer's and the builder's drawn signatures render inside the printable article with their dates, so the saved PDF is the executed document rather than an unsigned copy of the terms. Before you counter-sign, the customer sees Pending builder counter-signature rather than a half-filled grid, so neither side has to guess whether the contract is actually in force.

05

Either side gets a clean PDF in two clicks

A pinned Print / Save PDF button follows the customer deep into a long agreement, and the print stylesheet strips everything except the document itself. From your side, the Print as PDF action lands straight on the save dialog. There is no server render step and nothing emailed back and forth for the lender who asked for a copy.

06

You check their details before the agreement is released

Submitting the details form does not hand the customer a contract. They land on a branded preparing-your-agreement screen that thanks them by first name, says you are reviewing their details, and asks them to bookmark the page. It polls every six seconds, so the moment you send the agreement the signing view appears in place — no second email, no second link to lose.

Project progress
The rail on the agreement page: step three, current. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
How it works
  1. 1The link's contract id is resolved, then the contract row is read from a public by-id endpoint
  2. 2A customer who has not completed the form is sent back to /info
  3. 3Signing requires the acknowledgement, a name of at least three characters, ink on the pad and every required section initialed
  4. 4POST /api/client-portal/sign-contract records the signature, IP and user agent and flips status to customer_signed
  5. 5A persistent admin alert reminds the builder to counter-sign until they do
Why we built it

Customers who wanted to re-read their agreement tapped through from their dashboard and were bounced straight back out, because the page redirected away as soon as a contract was signed — the one document they most wanted to review later was the one they could not open. It switches to a read-only copy instead of redirecting. The states that count as signable are a fixed set, so refreshing seconds after signing never drops the customer back into a waiting screen.

The problem
  • Print-sign-scan contract cycles
  • Customers unable to retrieve their own agreement later
  • No audit trail around who signed and from where
Sound familiar?
What you get
A binding signature captured on a phone in minutes
The customer can re-read or print their copy forever
IP, user agent and timestamp are captured with the signature
What's inside
Draw-your-signature pad
A canvas that captures a real drawn signature with a finger or a mouse and serialises it to an image stored with the agreement.
Preparing your agreement hold
After the details form, the customer sits on a branded waiting screen until the builder releases the agreement, and the page unlocks itself the moment they do.
What you are approving, restated above the agreement
A short block above the legal text restating the project, the building summary, the site address and the total the customer is signing for.
Executed signatures on the document
The customer and builder signature images land inside the printable agreement, and the customer can see whether the builder has counter-signed yet.
Print or save the agreement as a PDF
A pinned Print / Save PDF button produces a clean copy of just the agreement, with an auto-print deep link for the builder.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →