Revelation Plumbing
Architecture review · Corey Crooks
A family-owned Pittsburgh plumber with strong trust signals, financing, and certifications — plus a verified NAP phone-number inconsistency that makes it a textbook case for data-integrity architecture.
Medium
Reflects how much could be verified from public surfaces for this review.
Decision brief
One-minute executive scan
- Recommendation
Make trust verifiable and operationally reliable—consistent NAP, durable leads, financing deep-links.
- Verified observation
Verified phone-number inconsistency across website and business listing.
- Inference
Homeowners vetting trust before price for emergency and planned plumbing work.
- Assumption
Wrong canonical number chosen during reconciliation—or lost uploads on schedule form.
- Recommendation
Single businessConfig source of truth + persist-first lead API with upload storage and notification adapters.
- TargetOne canonical phone across site, schema, and Google profile.
- TargetNAP consistency monitor alerts on drift.
Evidence policy
Sources for verified claims: https://www.revelation-plumbing.com/ (public site, reviewed Jul 2026); Google Business listing data from discovery pipeline (rating/review count/listed phone). Review date: Jul 15, 2026. Assumptions are labeled inline. Performance measurements: not run—targets only.
Directly verified: Website phone 412-518-7170; Discovery listing phone (412) 618-1165; Schedule form with optional photo/video upload.
Executive Summary
Revelation Plumbing is a family-owned, licensed and insured plumbing company serving Pittsburgh and surrounding areas. The public site leans hard on trust: 100% satisfaction guarantee, BBB “A” rating claim, NASSCO trenchless certification, no service-call fees, same-day emergency help, and financing.
Users: homeowners with urgent failures and planned upgrades (water heaters, filtration, trenchless sewer work) who are actively vetting trust before price.
Biggest opportunities
- Resolve a verified contact-number inconsistency across surfaces (data integrity is a real architecture concern, not a copy fix).
- Convert rich trust content into a structured, maintainable system.
- Capture the already-strong lead form (with photo/video upload) into a reliable lead-ops backend.
Current Website Review
Navigation & information architecture
The homepage is a long single-scroll trust narrative → feature grid → services → schedule form. Trust content is genuinely strong; the weakness is structure and consistency, not messaging.
UX / conversion
| Element | Verified observation | Opportunity |
|---|---|---|
| Phone | Two different numbers across surfaces | Single source of truth + call tracking |
| Schedule form | Rich (photo/video upload, address, zip) | Wire to reliable lead pipeline + spam control |
| Trust badges | BBB, NASSCO, licensed/insured | Keep; make them structured, linkable proof |
| Financing | Advertised | Deep-link to the real financing provider |
| Emergency | Same-day promise | Distinct emergency path + response SLA |
Accessibility / SEO / performance
SEO note (recommendation): NAP consistency is a ranking and trust factor for local services. The phone discrepancy above should be reconciled across the site, Google Business Profile, and every citation.
My Redesign
Why: The company already earns trust in words. The redesign should make that trust verifiable, consistent, and operationally reliable — and never lose a lead.
UX improvements
- One canonical phone number, injected from a single config value everywhere (nav, hero, footer, schema).
- Split emergency vs. planned intent; keep the excellent photo/video upload for planned diagnostics.
- Trust badges become linkable, structured proof (BBB profile, certification issuer).
Accessibility & responsive
- Labeled form fields,
autocomplete, accessible file upload, sticky mobile call bar (dismissible, reduced-motion aware).
Performance
- Lazy-load below-the-fold media; prioritize LCP on hero headline + primary CTA.
Long trust-narrative scroll with strong claims, a rich schedule form, and two different phone numbers appearing across the web presence.
Same trust story, tightened into structured proof blocks and an intent-aware schedule flow — with one canonical phone number sourced from a single config and echoed into LocalBusiness schema.
Owned redesign screenshots can replace these structural placeholders. No copyrighted photography is republished.
Architecture Review
Like most home-services sites, the real system isn’t the marketing page — it’s lead capture → routing → SLA, plus data integrity across surfaces.
Frontend
- Next.js App Router; server-rendered service + trust pages; client form wizard with file upload.
- Single
businessConfig(phone, address, hours) consumed by UI and JSON-LD so numbers can never drift.
Backend & API
POST /api/leadswith Zod validation, honeypot + rate limit + managed bot challenge, and idempotency keys (mobile networks double-submit).- File uploads to object storage with type/size limits and virus/metadata scrubbing.
Data & integrity
- Postgres:
leads,lead_events,services,business_config. - A scheduled consistency check that compares on-site NAP vs. Google Business Profile via API and alerts on drift.
Notifications / jobs / observability
- Immediate SMS+email on emergency leads; escalation job if untouched for N minutes.
- Trace lead submit → notify → ack; alert on notifier failure (revenue-critical).
CI/CD & deploy
- Preview per PR; Playwright covers form validation, file-upload happy path, and the emergency route.
Engineering Decisions
Engineering decision
Architecture decision record- Context
- The business phone number differs between the website and the business listing.
- Decision
- Introduce a single businessConfig source of truth consumed by UI, schema, and tracking.
- Alternatives
- Manually edit each surface; ignore it.
- Why this wins
- NAP consistency affects trust, local SEO, and attribution; drift is a data problem, not a copy problem.
- Tradeoffs
- Requires a config module + a periodic consistency check job.
- Business impact
- Correct call routing, cleaner attribution, better local ranking signals.
Engineering decision
Architecture decision record- Context
- A strong lead form (with media upload) can silently fail into an inbox.
- Decision
- Persist leads to Postgres first, then fan out notifications via an adapter.
- Alternatives
- Email-only form; third-party form widget.
- Why this wins
- Capture must survive notifier outages; media aids diagnosis and quoting.
- Tradeoffs
- Storage + moderation for uploads; slightly more backend.
- Business impact
- Zero lost leads; faster, more accurate quotes.
Engineering decision
Architecture decision record- Context
- Financing is a feature homeowners expect, but it's a regulated third-party system.
- Decision
- Deep-link to the financing provider; never rebuild lending.
- Alternatives
- Custom financing UI; omit financing.
- Why this wins
- Lending has compliance and underwriting concerns far outside a marketing site.
- Tradeoffs
- Less visual control over the provider flow.
- Business impact
- Keeps a high-intent feature without regulatory risk.
Migration Strategy
Reconcile the source of truth
Confirm the correct canonical phone with the owner. Fix it on-site, on Google Business Profile, and in top citations. Stand up businessConfig. Baseline Lighthouse + accessibility.
Lead pipeline behind the current site
Point the existing schedule form at POST /api/leads with storage + notifications + upload handling. Prove reliability (including SMS text-alerts) for two weeks with synthetic probes.
Cut over the frontend
Ship the Next.js redesign reusing the same config + form contracts. Redirect legacy URLs. Add the NAP consistency monitoring job.
Rollback: Versioned form endpoint (/api/leads?v=1); DNS rollback for the marketing front; notifications continue independent of the UI.
Risks: Wrong canonical number chosen (verify with owner); lost uploads (validate + retimeout); SEO dip on URL changes (map redirects).
Why Not?
Why not rebuilding financing in-house?
- Why it might look attractive
- Keeping homeowners on-site feels like better UX control.
- Why it is not justified here
- Lending has compliance and underwriting concerns far outside a marketing site. Deep-link to the financing provider.
- Reconsider when
- The company becomes a licensed lender—an entirely different business.
Why not ignoring the NAP inconsistency?
- Why it might look attractive
- It looks like a small copy fix.
- Why it is not justified here
- Phone drift is a data-integrity and attribution problem. It needs a single source of truth and monitoring, not a one-time edit.
- Reconsider when
- Never—consistency remains a standing requirement.