Chris Driscoll Plumbing
Architecture review · Corey Crooks
A North Pittsburgh / Wexford plumber with a conversion-oriented public site, rich service taxonomy, and a clear path to a lead-ops architecture that respects emergency call economics.
Medium
Reflects how much could be verified from public surfaces for this review.
Decision brief
One-minute executive scan
- Recommendation
Capture emergency and planned plumbing demand with reliable lead routing and clear service taxonomy.
- Inference
Emergency and planned intents share one long undifferentiated page and form path.
- Inference
Homeowners in urgent failure modes and homeowners planning remodels or water-heater work.
- Assumption
Missed or delayed emergency notifications—the scarcest resource is the on-call human.
- Recommendation
Modular lead-ops monolith: intent-aware forms, Postgres persistence first, SMS/email adapters, deep-link FSM later.
- TargetEmergency leads notify on-call within a defined SLA.
- TargetZero lost form submissions during provider outages (persist-first).
Evidence policy
Sources for verified claims: https://www.chrisdriscollplumbing.com/ (public site, reviewed Jul 2026); Google Business listing data from discovery pipeline (rating/review count). Review date: Jul 15, 2026. Assumptions are labeled inline. Performance measurements: not run—targets only.
Executive Summary
Chris Driscoll Plumbing markets residential plumbing across Pittsburgh and North Pittsburgh / Wexford. The public site emphasizes emergency availability, upfront pricing, clean job-site behavior, and 30+ years of operator experience (company opened in 2023; expertise dating to the 1990s — as stated on the site).
Users: homeowners in urgent failure modes (burst pipes, backups, no hot water) and planned-work homeowners (remodels, water heaters, inspections).
Biggest opportunities
- Treat emergency vs planned intent as separate conversion funnels.
- Make service taxonomy searchable and internally consistent (duplicate items appear in the public copy).
- Back the marketing site with a lightweight lead operations system (routing, SLA, spam controls) — still a modular monolith.
Current Website Review
Navigation & IA
The homepage is a long single-scroll brochure: trust promises → media/education snippets → lead form → emergency list → service category grids → differentiators → about → testimonials → contact.
Strength: Feature density matches a serious trades business (parity matters — homeowners notice missing “Pay bill / financing / membership” style features when competitors have them).
Weakness: Cognitive load. Emergency callers and remodel planners share one undifferentiated path.
Branding & UX
- Clear operator personality (“Just Call Chris!”) — strong brand signal.
- Repeated “Call Us Now” CTAs — good for urgency, noisy for planned work.
- Educational video sections (pinhole leaks, homeowner repairs) support trust.
Accessibility / SEO / performance
SEO opportunity (recommendation): unique landing pages per high-intent service + city (“tankless water heater Wexford”) with honest NAP consistency — only if content can be maintained.
Conversion opportunities
| Intent | Current | Better |
|---|---|---|
| Emergency | Call CTAs + 24/7 list | Sticky call bar + “what to do while you wait” |
| Planned | Long form mid-page | Shorter form + service picker + photo upload later |
| Trust | Testimonials + years | Structured review highlights + warranty facts |
My Redesign
Why: The business already sells competence. The redesign should reduce time-to-call for emergencies and time-to-qualified-lead for planned work — without inventing services the company doesn’t offer.
UX improvements
- Split hero CTAs: Call now (24/7) vs Request an estimate.
- Service catalog as browsable IA with consistent naming (dedupe repeated line items like duplicate “Shower & Tub Installation” / “Code-compliant installations” seen in the public copy).
- Form progressive disclosure: emergency → phone-first; planned → problem + preferred window.
Accessibility & responsive
- Tap-friendly call button fixed on mobile (with dismiss + reduced-motion).
- Form labels, errors, and
autocompleteattributes. - Don’t trap focus in chat widgets (none required).
Performance
- Lazy-load video embeds; poster frames first.
- Prioritize LCP on hero text + primary CTA, not autoplay media.
Single long page: many equal-weight sections, repeated call buttons, one generic lead form, service grids that read like a sitemap dump.
Brand-first emergency/planned split, scannable service IA, trust band with verified quotes, and a lead form that changes fields by intent — still one site, clearer journeys.
Owned redesign screenshots can replace these structural placeholders. Do not republish copyrighted photography from the live site.
Architecture Review
Home-services sites fail when marketing is pretty but leads die in email. Architecture should optimize lead capture → routing → response SLA, not microservice fashion.
Frontend
- Next.js App Router, server-rendered service pages, client form wizard.
- Edge caching for catalog pages; never cache personalized lead responses.
Backend & API
POST /api/leadswith Zod validation, honeypot + rate limit + turnstile/captcha.GET /api/servicesfor catalog.- Idempotency key on lead submit to prevent double posts on flaky mobile networks.
AuthZ
- Staff inbox: magic link; roles
dispatcher,owner. - Audit trail on lead status changes (
new → contacted → booked → closed).
Data
- Postgres tables:
services,leads,lead_events,testimonials(only with permission). - PII minimization: retain what dispatch needs; document retention period.
Jobs & notifications
- Immediate SMS/email to on-call number for
intent=emergency. - Digest for planned estimates.
- Escalation job if emergency lead untouched for N minutes.
Observability
- Trace lead submit → notify → ack.
- Alert on notify provider failures (this is revenue-critical).
CI/CD & deploy
- Preview deploys per PR; Playwright: form validation + emergency path.
- Secrets in vault/env; never in git.
Engineering Decisions
Engineering decision
Architecture decision record- Context
- Emergency and planned leads share one form, hurting qualification.
- Decision
- Intent-aware form + routing rules in one Lead module.
- Alternatives
- Two phone numbers only; third-party chat.
- Why this wins
- Response SLA differs; messaging differs; staffing differs.
- Tradeoffs
- Slightly more UX complexity; must keep emergency path ≤2 taps.
- Business impact
- Faster emergency callback; cleaner estimate pipeline.
Engineering decision
Architecture decision record- Context
- Temptation to build a full Field Service Management clone.
- Decision
- Own lead capture; integrate Housecall Pro / ServiceTitan / Jobber later via adapter.
- Alternatives
- Build scheduling in-house; stay email-only.
- Why this wins
- FSM is a product category with deep scheduling/inventory; don’t recreate it.
- Tradeoffs
- Adapter work later; email-only doesn’t scale past a solo operator.
- Business impact
- Lower build cost; keeps optionality.
Engineering decision
Architecture decision record- Context
- Spam and bot leads waste on-call time.
- Decision
- Rate limits + managed bot challenge + server-side validation.
- Alternatives
- Invisible honeypot only; paid lead marketplaces.
- Why this wins
- False emergencies are expensive.
- Tradeoffs
- Captcha adds friction; honeypot alone is weak.
- Business impact
- Protects the on-call human — the scarcest resource.
Migration Strategy
Instrument the current site
Add analytics events on Call clicks and form submits (privacy-aware). Inventory every service string; dedupe into a canonical catalog spreadsheet signed off by the owner.
Stand up lead API + inbox
Keep the public Wix/current site temporarily; point the form to the new POST /api/leads. Staff uses a simple inbox. Prove notification reliability for 2 weeks.
Cut over marketing frontend
Launch the Next.js redesign with the same catalog and form contracts. Redirect old anchors. Add service landing pages only for owner-approved keywords.
Rollback: Form endpoint stays versioned (/api/leads?v=1); DNS rollback for the marketing front; notifications continue even if the new UI rolls back.
Risks: Missed emergency notify (mitigate with synthetic probes); catalog errors (mitigate with owner QA checklist); SEO dips (mitigate with URL mapping).
Why Not?
Why not a full Field Service Management clone?
- Why it might look attractive
- Scheduling, dispatch, and invoicing look like product features worth owning.
- Why it is not justified here
- FSM is a deep product category. Own lead capture; integrate Housecall Pro / ServiceTitan / Jobber via adapter when volume justifies it.
- Reconsider when
- The business outgrows third-party FSM pricing or needs custom workflows those tools cannot express.
Why not microservices?
- Why it might look attractive
- Separate lead, catalog, and notify services sound clean on a whiteboard.
- Why it is not justified here
- A solo-to-small-crew plumber needs notification reliability, not distributed transactions.
- Reconsider when
- Multiple brands or regions need independent deploy ownership.
Future Architecture
When volume justifies it, sync leads to an FSM and add:
- On-call calendar + escalation policies
- Estimate PDF generation
- Customer portal for invoices (usually via FSM — don’t rebuild billing)