Brand
HJR Roofing
A London and Hertfordshire roofing contractor with twenty-six area pages engineered to own local search, and every enquiry landing straight on the owner's phone.
The build
A roofing firm's website has one job: when someone's roof leaks in a town you cover, you're the firm they find and the number they ring. HJR Roofing covers a lot of towns across North London, West London, and Hertfordshire, so I made sure every single one has its own page.
Twenty-six area landing pages, six service pages, and a blog, all generated from a single data file that describes the business. Add an area or a service to that one file and the site grows itself, sitemap and all. No CMS, nothing to maintain, nothing to break.
Conversion is deliberately old-school because that's how trade customers buy: click-to-call, email, and a floating WhatsApp button that opens with a quote request already written. And the proof a roofer lives on, Checkatrade, Which? Trusted Trader, Google reviews, the firm's Facebook feed, is embedded right in the site instead of hidden behind links.
- 26Area pages, one per town covered
- 6Service pages, from new roofs to guttering
- 1Data file driving the entire site
Technically engineered.
The decisions that make this build hold up.
- 01
Programmatic local SEO
Twenty-six area landing pages generated from one array, each a real indexable page targeting the town-plus-trade searches that turn into jobs. The site competes in every neighbourhood the vans actually reach.
- 02
One source of truth
The whole business, services, areas, posts, social links, opening details, lives in a single constants file. Updating the firm means editing one file, and the pages, sitemap, and structured data all follow.
- 03
Leads with no moving parts
No form backend to break and no inbox to babysit: click-to-call, email, and a WhatsApp button pre-filled with a quote request. Enquiries land where the owner already looks, on the phone.
- 04
Proof where it counts
Checkatrade, Which? Trusted Trader, Nextdoor, Yell, Google reviews, and a live Facebook feed, embedded on-site, with LocalBusiness structured data carrying the firm's location and reviews into search.
The real stack
Next.js 16 + TypeScript
Static site with programmatic area pages
Tailwind CSS 4
Design system with light and dark themes
WhatsApp deep links
Pre-filled quote requests to the owner's phone
JSON-LD structured data
LocalBusiness schema with geo and reviews
Where my services came in
Book a call
Loading calendar…
No time that suits? Message Joe on WhatsApp or email hello@calljoe.co.