Cascade Crest Roofing
WordPress local-trades demo for a fictional Puget Sound roofing contractor — service cards, before/after gallery, service-area map, fixed-price estimate flow that pre-screens leads through the contact copy.

Overview
A WordPress marketing site for a fictional Puget Sound residential and light commercial roofing contractor — five-page structure (Home, Services, Before & After, Service Area, Get an Estimate) on a custom Full-Site-Editing block theme. The second demo in the Tier 1 professional/local-services batch and the second to deliberately ship no new shared block.
Per-demo theme — bold/utilitarian, palette as differentiator:
- Thin child of the platform
_chassisparent - Charcoal primary (#1F2937), safety orange accent (#EA580C), bone background (#F5F1E8), slate gray muted
- Manrope sans throughout (both the heading and body font families resolve to Manrope) — the only demo on the platform without a serif
- Header carries the four-item navigation plus an inline phone-CTA button — the affordance trades-customers actually use
- Footer carries the company-bio + WA contractor license number + 24/7 storm-response line
Deliberate decision — no new shared block (again):
This is the second Tier 1 demo to ship without authoring a new shared block. The temptation here was a sfp-blocks/before-after-slider — a draggable curtain reveal between two images, reusable for any service that shows transformation (cleaning, landscaping, painting, dental cosmetic, real-estate staging). Deferred. The slider would need drag interaction logic (touch + mouse + keyboard, accessible label, prefers-reduced-motion fallback), and the before/after gallery on this demo reads well as static side-by-side images with substantive prose between the pairs explaining what the tear-off uncovered. The animation would add interactivity at the expense of focus on the technical substance. Promotion to a shared block is clean future work once a demo actually needs the curtain effect to carry a page.
Five pages:
- Home — Charcoal cover hero with firm name + tagline ("Roofs that survive the Sound."), four service cards with brass-orange top borders, a
sfp-blocks/trust-stackresults bar (17 years · 2,400+ roofs installed · 4-hour storm response · 18-yr workmanship warranty), a 3-up portfolio-grid of recent jobs, and three left-bordered testimonial cards - /services/ — Four alternating image-text rows for Full re-roof, Emergency repair, Gutters & downspouts, and Moss treatment. Each row carries a substantive description plus a typical-cost paragraph in italics
- /before-after/ — Three case-study sections with side-by-side before/after image pairs, headed by the property + scope description and substantive prose about what the tear-off uncovered — the interesting part of a real roof job, which generic contractor sites never write about
- /service-area/ — Service-area map graphic + two columns (primary service area = same-day estimates / four-hour storm response, extended service area = next-day estimates / eight-hour response), plus an "outside the map?" callout that signals the firm refers work it won't take
- /estimate/ — Phone + email columns plus a "what happens next" callout box doing the actual screening work (no "starting at" pricing, fixed-price after the site visit, 45-minute residential inspections). Treats the estimate page as a pre-engagement filter, not a lead-capture maximizer
Specific trades content in the placeholder copy:
The temptation on a fictional contractor site is generic ("we are passionate about quality roofing"). The copy was written as if a real roofer would have to defend it — specific materials (synthetic underlayment, ice-and-water at penetrations and valleys, 60-mil mechanically-attached TPO), specific cost ranges ($18–24K composite re-roof on 2,400 sf, $1,600–2,200 seamless gutter run), specific operational details (four-hour windstorm response, 45-minute residential inspections, no power-washing on Puget Sound roofs because of granule loss). A real-client engagement would replace every example with the firm's actual numbers; the structure carries over.
The Challenge
Local roofing contractors get sold on the bundled marketing site that came with their CRM at $200–400/month, or on a hosted "contractor website" service that ages badly. The market assumption is that trades sites need lead-capture maximizers, "starting at" pricing, and badge-of-the-month trust signals — not a credible technical description of what the company actually does. That assumption matches the worst contractor sites on the web and produces results that read accordingly.
The Solution
A per-demo theme on the platform chassis with no new shared block, deliberately. Service cards via core/columns with brass-orange top borders; before/after gallery as static side-by-side images with substantive prose between the pairs; service-area page that signals the work the firm won't take. Estimate page treats the contact form as a pre-engagement filter (no "starting at" pricing, fixed-price after the inspection) instead of a lead-capture maximizer.
Results
Lighthouse 99 / 96 / 100 / 92 (perf / a11y / best-practices / SEO) with placeholder photography — matches the platform's ceiling without per-demo tuning
Five-page trades site live in ~4 hours including per-demo theme, full seed with substantive trades content, hub case study, Project registration, and portfolio surfacing
No new shared block — the before/after-slider was considered and deferred; static side-by-side images with substantive tear-off prose carry the gallery better than a curtain reveal would
Bold/utilitarian palette (charcoal + safety orange + Manrope sans) deliberately distinct from the four warm/earthy palettes already shipped (forest/brass, navy/brass, oxblood/brass, cream/coral)
Inline phone CTA in the header — the affordance trades-customers actually use; the contact page sits behind it as the fallback, not the primary path
Establishes the "no new block, second time" pattern as the standard tier-1 move when the genre-specific affordance is design + copy rather than novel block primitive
Gallery


