The brief
Canadian winter problems arrive at the worst time: a driveway buried before work, a furnace that stops at night, a pipe that freezes, a car that will not start at minus 30. People search, call around, repeat the same details and still do not know who serves their street. WinterHelp.ca was set up as one place for that search: pick the problem, give a postal code and the timing, and send one request.
The brief covered two sides. For residents and property managers, a fast bilingual site that answers the winter question and takes a request in a minute. For search, a large set of honest local pages, city by city and service by service, that show up when someone types "snow removal Laval" or "no heat Ottawa".
What we built
748 pages from one data model
WinterHelp.ca is a Next.js application in TypeScript with React 19. Pages are generated from data: 20 launch markets and 24 winter services give 480 English local service pages, and the Québec markets get 120 French pages that come first, with English mirrors and hreflang between them. French hubs cover services, cities, emergencies, commercial work and providers for Québec. With the guides, city and service hubs and provider pages, the sitemap held 748 addresses on 8 November 2026.
Guides for the moment before the call
The Winter guides section answers what people search before they call anyone: the Québec winter tire period and what to plan for 2026/27, what to do with a suspected frozen pipe before it bursts, a safe furnace checklist before an emergency repair, and how ice dams form and when roof snow becomes a building problem. Each guide ends where a request form begins.
A request pipeline that fails closed
Consumer and provider forms post to one lead endpoint. Each request carries a stable daily fingerprint for duplicate detection, a routing decision, attribution data and a schema version, and the body is signed with an HMAC signature before it is sent on. In production the intake fails closed: if the delivery address is missing, the form reports an error to the visitor and the health check shows the fault. A delivered request reaches the team as a short card in Telegram with an e-mail copy. Test requests stay in the log.
Consent and privacy for two provinces
Privacy pages in English and French cover PIPEDA and Québec's Law 25. Analytics run in consent mode, with tracking denied by default for Québec and European visitors until they agree, and load only on the live domain. The design, "Snow Stake" in navy and signal red with the Radio Canada typeface, keeps the request form on the first screen.
Where it stands today
On 8 November 2026 winterhelp.ca is live in English and French, with 20 launch markets, 24 services, a winter guides section, an emergency page, a For businesses page for commercial snow and a provider sign-up. The site went live on 29 September 2026, the day after its repository was created; the first public web archive snapshot is dated 30 September 2026.
Related
Local search at scale: SEO and visibility in AI answers. The page that takes the request: landing pages. The trade it serves: contractors.
Project lead: Marketing MIX. Product: WinterHelp.ca, a winter services platform for Canada. Year: 2026.



