Brief and challenge
The brief
A self-initiated project: design the website I believe every local roofing contractor actually needs, one built around a single measurable goal, booked estimates.
The challenge
Contractor websites usually bury the one action that matters under galleries and generic copy. The challenge was making estimate booking unavoidable without the site feeling pushy, while still carrying the trust signals homeowners look for before letting anyone touch their roof.
Every path leads to a booked estimate.
Three decisions that shaped the build: what I chose, why, and what it replaced.
Design backwards from one conversion
Decision
A global booking modal wired to every call to action, so scheduling an estimate is one click from anywhere on the page.
Why
The site has one measurable goal, and every step between arriving and booking costs leads.
Instead of
The usual contractor layout, where the estimate sits below galleries and generic copy.
Constraint
It had to stay helpful, never pushy.

Order the content around trust
Decision
Services, proof of work, a transparent process and guarantees, in that order.
Why
Homeowners want proof before they let anyone onto their roof.

Build it once, rebrand it in days
Decision
Prototyped in Figma, then hand-built as a clean, reusable Elementor template.
Why
Local contractors need a site quickly; a template lets one be deployed in days, not weeks.

My role
I did
Strategy, Figma prototype, design and Elementor build
Client
None. Self-initiated concept project
