Skip to main content
Back to Portfolio

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.

WordPressPHP 8.3ReactGutenbergFull-Site Editingtheme.jsonApacheAWS EC2
Cascade Crest Roofing preview

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 _chassis parent
  • 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:

  1. 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-stack results 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
  2. /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
  3. /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
  4. /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
  5. /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

Cascade Crest Roofing screenshot 2
Cascade Crest Roofing screenshot 3
Cascade Crest Roofing screenshot 4

Interested in working together?

Let's discuss how I can help with your project

Get in Touch