CNB Renovation
CNB Renovation — general contractor, Toronto & GTA
Custom WordPress theme for a Toronto renovation contractor: 14 core pages, 21 city pages, 3 Google Ads landings, a 3-step quote form with UTM tracking, a 215-pin project map — all editable via ACF PRO.
215 projects on the map · 21 city pages- Year
- 2026
- Duration
- 2 weeks
- Industry
- Construction — home renovation contractor
- Country
- Canada (Toronto & GTA, ON)
- Services
- Web Development
Project overview
CNB Renovation is a Toronto general contractor — basements and legal second suites, bathrooms, full-house renovations, in-law suites, stairs and railings — with 215+ completed projects across the GTA, a 100% in-house crew and fixed-price contracts. The site had to do two jobs at once: sell that story to homeowners comparing contractors, and give the owner a platform they can grow themselves — new city pages, new ad landings, new blog posts — without calling a developer for every change.
My role in the project
I personally worked on this project from the design brief to the live theme. The areas I owned and delivered directly:
- Site architecture: home, gallery, services hub and six service pages, about, contact, blog, legal pages, plus the geo layer — 5 basement-renovation city pages and 16 full-house-renovation city pages with unique copy, permit notes and FAQs per city
- Custom WordPress theme from the approved design, with every heading, text, photo, gallery, menu, header and footer element exposed as ACF PRO fields — and a built-in default for each, so the site looks finished even before the owner touches a field
- Three Google Ads landing pages (design-build, renovation cost, renovation contractor) and a reworked full-house page with a 12-point scope block, “fixed-price, not hourly” argument, before/after strip and FAQ
- Quote forms: the 3-step form on the home page and the contact form post to a custom REST endpoint with UTM capture, rate limiting and a CRM hook; every submission redirects to a thank-you page
- Analytics layer:
generate_leadfor forms, phone, WhatsApp and e-mail clicks, deduplicated across the redirect, so Google Ads and GA4 count one conversion per real lead - One-click installer (Tools → Install CNB): creates all pages, four menus, ACF contact settings, eight blog posts and the legal texts in a single run
What I built
- Home page with a hero slider (cross-fade + subtle Ken Burns), stats strip (215 projects, 10+ years, $2M liability, WSIB), glass-card about block, six service tiles, “Why CNB” grid, process steps, referral-program section, GTA coverage block, interactive project map (Leaflet, 215 pins from GeoJSON), 3-step quote form, FAQ and team
- Gallery with category filters and PhotoSwipe lightbox — 46 project photos ship with the theme as a fallback until the owner uploads their own
- Service page template: hero, stats, ACF gallery with before/after marking, scope cards, process, warranties, FAQ, CTA — all defaulted by slug
- Neighbourhood template for the 21 city pages, driven by a per-city data file (lead, permit notes, districts, FAQ)
- Blog: masonry cards, dark post hero, lightbox for the post image, CTA band, “more from the blog”
- Quote-form shortcode to drop the same lead form on any future page
- Smoothness pack: header-aware anchor scroll, rAF-based parallax and sticky header with hysteresis, eased counters, fade/scale gallery filtering — all disabled under
prefers-reduced-motion
The result is a contractor site that reads like a premium brand — Fraunces display type, self-hosted fonts and libraries, no page builder — and behaves like a lead machine with attribution the owner can actually trust.
Full homepage, desktop
Tech stack
- WordPress
- Custom theme
- ACF PRO
- REST API forms
- Leaflet
- PhotoSwipe
- GA4 events
Want a similar project done?
Tell me about the task. I will personally look at your project and suggest the right way to deliver it.
Discuss your project with me