Semantic zero-JS build
Native HTML for accordions, forms, and navigation. No framework, no hydration, nothing that has to execute before a page becomes readable.
Fixed price, defined end, no retainer. Built for a company with real work to protect: replacements, commercial systems, claims, inspections, and the service areas around them.
Not tiers or upgrades. The baseline, on every build.
Native HTML for accordions, forms, and navigation. No framework, no hydration, nothing that has to execute before a page becomes readable.
Structured data per template, an entity model that connects services to roof types to service areas, and an llms.txt that tells answer engines what the site is authoritative about.
Location pages built as real answers for real markets, internally linked to the services they support, not spun duplicates with the city name swapped.
Redirect mapping, schema validation, sitemap and indexing submission, and a post-launch crawl proving the build matches the specification.
Each phase has a written exit condition. Nothing moves forward on a verbal.
The same two structures show up on every rebuild. One cannot be quoted. The other is built to be.
No page answers a question anyone actually typed. There is nothing for an answer engine to quote, and nothing that moves a buyer.
Every page exists because a query exists, answers it in the first line, and links to the service and market that query implies.
CLIENT NAMES WITHHELD UNDER CONFIDENTIALITY AGREEMENTS. PER-ENGAGEMENT FIGURES ARE PUBLISHED IN THE CASE STUDIES.
Two engagements built on the structure above, with every figure approved in writing by the client.
Twenty-two years in business, cited in no AI answer about roofing in a metro of 420,000. Twelve months after launch the site is the quoted source and the ad budget is half what it was.
Four metros under one brand, competing against themselves with near-identical service-area pages. Fewer pages, written per market, ended the cannibalisation.
A rebuild replaces a site that is already earning something. If nothing is coming in yet, the website is not the problem to solve first.
A paid, fixed-scope audit of your site, your market, and the questions your buyers ask. Ends in a written rebuild plan.
The blueprint gets built. Page architecture, structured data, internal-link model, and copy that answers those questions.
Indexing submission, schema validation, llms.txt, and a post-launch crawl confirming every page shipped as specified.
Roofing web work is sold in four familiar price bands. A rebuild starts above all of them, on purpose.
The first four bands buy a website. They are priced against design hours, so the scope stops at pages that look finished.
Four things no template purchase includes, and the reason the band above exists.
A single replacement pays for the rebuild and leaves margin. That is the number the price is set against.
PRICE BANDS RESEARCHED FROM PUBLISHED RATES AT TIME OF WRITING. JOB VALUE VARIES BY MARKET AND ROOF SIZE.
Because the scope includes query research, entity and schema architecture, market-specific copy, and a zero-JS build, and because one high-ticket replacement job pays for a meaningful share of it.
Yes. Monthly settlement is available and the terms are agreed before the build starts.
Scoped in the audit. Site size, page count, and how fast copy gets approved are the variables.
Weeks to months. That is the sourced range and it depends on your market's competitiveness. Anyone promising faster is guessing.
Yes. The build, the content, and the blueprint are yours.
No blueprint, no honest scope, no fixed price.