Skip to main content

CASE STUDIES / CLIENT BUILD / WEBSITE

A lead-generating website for a general contractor

Client build (anonymized)

  • Try it
  • Understand it
  • Verify it
  • Hire async

A 16-page site Measured with a quote form that logs each lead to a spreadsheet and sends an email, paid in full. Whether the owner has made a first edit on his own: not confirmed Unmeasured.

The problem

A small contracting business with a non-technical owner had no website that a homeowner could find, trust and send a quote request from. He wanted a site he could keep current without paying a developer for every change.

The build had to explain the services in plain words, show up for the areas the business serves and turn a visit into a quote request that reaches the owner the same day.

Constraints

  • A fixed price, split into milestones, agreed in writing before work started.
  • The owner is not technical, so editing had to happen in a content system, not in code.
  • Every quote request has to land in a spreadsheet and in an email, so a failure of either does not lose a lead.
  • The site had to be fast and readable on a phone, because homeowners search from their phones.

Who did what

The business owner

  • Described the services, the areas and the work.
  • Supplied reviews, photos and the business details.
  • Approved each milestone and made each payment.

I built

  • The site: core pages, area pages and an articles section
  • The quote form, validation and the spreadsheet and email delivery
  • A content system for editing pages and articles without code
  • Mobile layout and the basic search setup: sitemap, titles, descriptions and structured data
  • Hosting, domain setup and the written handover notes

A real client build. The business, the owner, the domain and the amount are left out on purpose.

Step through a run

Sample path of a quote request, no real lead data

A homeowner searches

They land on a service page or an area page written for the work they need and the place they live.

  • Service page OK:plain words, a clear next step
  • Area page OK:names the places served

They send a quote request

The form checks the fields before it sends. A request that looks like spam is held back.

  • Required fields OK:checked on the page and on the server
  • Spam filter Fails:missing in the first version, and spam leads arrived

The lead reaches the owner twice

Each request is written to a spreadsheet and sent by email, so a failure of either does not lose it.

  • Spreadsheet row OK:written
  • Email to the owner OK:sent

The owner edits the site

Pages and articles live in a content system with its own login. A change goes live without a developer.

  • Owner access OK:administrator account set up
  • A first edit by the owner Note:not confirmed

Timeline

Kickoff to the last payment
19 weeks Measured
Milestones in the written scope
5 milestones Measured, with the last payment held until the owner was satisfied.
Pages live at the final check
16 pages: 6 core, 4 area, 6 articles, checked on September 30, 2026 Measured.
Leads the site has produced
No lead count kept Unmeasured

Scope receipt

Build record

Milestone tier
Website
Stack
Next.js and React, TypeScript, Tailwind CSS, A hosted content system, A spreadsheet script, Vercel
Evidence basis
Counted from the source, the sitemap and the closeout notes of the build.

Done-checklist

  • Core pages, area pages and articles are live.
  • The quote form validates, logs to a spreadsheet and sends an email.
  • The owner has an administrator login to the content system.
  • The site works on a phone and carries a sitemap, titles, descriptions and structured data.
  • Handover notes cover logins, hosting and what to do when something stops.

What I would do differently

The first form had no spam filter, and spam leads reached the sheet. A filter belongs in the first milestone, not after the first spam lead.

I treated the editing handover as done once the owner had a login. It is done when he has made a change on his own and watched it go live. That is now a line in the done-checklist.

Have a client who needs this?

I build work like this for agencies and consultants, under your brand, at a fixed partner price per milestone. Everything runs in writing.

Send a project brief Or email a written brief