CASE STUDY · CUSTOM WEBSITE · LOCAL TRADE · WINDOW CLEANING
ClearView
“Full prices on the page. Most window cleaners hide them.”
A custom marketing site for an independent window and gutter cleaner in Warwickshire: full prices on the page, a service page per trade, and a local search page per town.
- Next.js 16.2 (App Router)
- React 19
- TypeScript
- Tailwind CSS v4 with custom OKLCH colour tokens
- Motion (Framer Motion v12) for scroll reveals
- Bricolage Grotesque and Hanken Grotesk via next/font
- Lucide React
- Custom Next.js API route for form handling
- Vercel (static CDN delivery, 28 prerendered routes)
The brief
Josh had an existing site that was getting visitors but converting poorly. Prices were hidden, the service breakdown was vague, and he was not ranking across the Warwickshire towns he actually covers. The rebuild had three goals: show prices in plain view (something most window cleaners refuse to do), explain each service clearly so customers arrive already informed, and be found in Google searches across six specific towns.
What we did
- Home page with hero image, visible starting prices, services overview, reviews strip, coverage area summary, and a persistent callback call to action
- Five service detail pages: window cleaning, gutter and fascia cleaning, gutter clearing, conservatory and orangery cleaning, and full exterior valet
- Six town pages targeting local search: Stratford-upon-Avon, Warwick, Royal Leamington Spa, Kenilworth, Alcester, and Redditch, each a standalone page
- Dedicated pricing page with full price tables by property size for both window cleaning rounds (6-weekly and 12-weekly) and gutter and roofline work
- Callback request form with server-side handling, honeypot spam protection, and accessible validation
- Sticky tap-to-call bar on mobile so the phone number is always one tap away on any page
- JSON-LD structured data on every page for local business, services, reviews, breadcrumbs, and FAQs
- Email signature with a standalone install guide page for one-click copy into Gmail, Outlook, or Apple Mail
The numbers
Gallery



What we said no to
- Hiding prices. Visitors who arrive at the contact form already knowing what they will pay are much closer to a booking than a speculative enquiry. Transparent pricing was a deliberate conversion decision.
- WordPress or a page builder. All content lives in TypeScript data files. There is nothing to break, no plugin updates, and every page prerendered at build time.
- Automated online booking. Josh confirms every job personally before starting. An automated booking flow would have created the wrong expectations and attracted out-of-area requests. The form captures the enquiry; the call closes it.
- An off-the-shelf template. The design is built from scratch with a specific warm, restrained aesthetic to stand apart from the generic trade-website look.
Common questions
Yes, and most refuse to, which is exactly why it works. For ClearView we built a dedicated pricing page with full price tables by property size, covering both the 6-weekly and 12-weekly window cleaning rounds plus gutter and roofline work. A visitor who reaches the contact form already knowing what they will pay is much closer to a booking than a speculative enquiry.
We build a separate, standalone page for each town you cover, so every one can rank for its own local searches. ClearView has six of these, targeting Stratford-upon-Avon, Warwick, Royal Leamington Spa, Kenilworth, Alcester, and Redditch, with JSON-LD local business structured data on every page to help Google understand the coverage.
Yes. ClearView has five service detail pages, one each for window cleaning, gutter and fascia cleaning, gutter clearing, conservatory and orangery cleaning, and full exterior valet. A clear page per service means customers arrive already understanding what they are buying, and each page can be found on its own in search.
Yes. We added a sticky tap-to-call bar on mobile so the phone number stays one tap away on any page of the site. ClearView also has a callback request form with server-side handling, honeypot spam protection, and accessible validation, so enquiries come through cleanly for the owner to confirm in person.
No. All the content lives in TypeScript data files and every page is prerendered at build time, so there is nothing to break and no plugins to update. ClearView is built from scratch on Next.js with 28 prerendered routes delivered from a static CDN, rather than an off-the-shelf template or page builder.
Stack
- Next.js 16.2 (App Router)
- React 19
- TypeScript
- Tailwind CSS v4 with custom OKLCH colour tokens
- Motion (Framer Motion v12) for scroll reveals
- Bricolage Grotesque and Hanken Grotesk via next/font
- Lucide React
- Custom Next.js API route for form handling
- Vercel (static CDN delivery, 28 prerendered routes)
THE SERVICE BEHIND THIS BUILD
Want something like ClearView? Starter Sites is the service that builds it, or get a fixed-price quote.
Want something like this?
30 minutes, no pitch deck.