Email first.
- Chose
- The public estimate route is email, as the client preferred.
- Instead of
- Imposing a form the owner did not want to manage.
- Trade-off
- Less structured intake, but a contact route the business is comfortable using.
B&B Specialty Contractors handles six trades across the Greater Toronto Area. I designed, wrote and built a focused three-page site that turns visitors into estimate requests, and the owner reports 17 jobs from it so far.
The website for a GTA contractor covering drywall, paint, flooring, trim, windows, doors and exteriors, with one clear route to a free estimate.
Page design, service copy and a Next.js build: one typed service list feeding every page, page-level metadata and structured data, an email-first estimate route, and a ready-to-enable estimate form with validation and Redis rate limiting.
Proportion: the right amount of website for a small business, delivered cleanly, with results the owner can count in jobs.
Results reported by the owner. Scope from the delivered build.
Service area and the estimate action appear first, so visitors can establish fit before reading further. Each service then answers the question a homeowner actually has: do you do my kind of job?
Step 1 · Establish fit

Step 2 · Recognise the job

Step 3 · Ask for an estimate

The homepage cards and the detailed service rows draw from the same typed list. Each card links straight to its matching section, so updating a service never means reconciling two copies.
Every page has its own title, description and canonical URL, plus business and breadcrumb structured data. Unconfirmed details such as opening hours and review ratings are left out rather than guessed.
Content model
Simplified from the implementation.
17 jobs generated by the website in total, latest figure confirmed 2 October 2026.
Need a clearer path from your services to an estimate request? Start a conversation
All projects ↗Available for select projects and opportunities
Let’s work together. Have a project in mind or a role you’re hiring for? I’d like to hear about it.
Nothing opened? Use Copy address and paste it into your email app.