# Vertical Kit Architecture — Repeatable Build System (2026-08-13)

Source of truth for the four-layer site model, one-client-per-trade-per-metro rule, and the generator-vs-Custom-Values technical decision.

## The problem
Build 7 Denver garage door companies on the same template with swapped colors and you have created 7 direct competitors in one SERP with near-identical websites. The client who paid to look distinctive will discover his competitor looks the same, and he will be right to be angry.

## Fix #1 (structural): one client per trade per metro
Sell exclusivity: "I only work with one garage door company in Denver."
- Eliminates sameness outright
- Justifies premium pricing
- Creates real urgency in the pitch
- 10 trades × 5 metros = 50 slots (exactly Rob's target)

## Fix #2 (build-level): four-layer model

| Layer | Varies? | What's in it | Share of build |
|---|---|---|---|
| **Chassis** | Never | Page structure, nav, sticky mobile bar, form markup, schema scaffolding, chatbot slot, accessibility, responsive CSS | ~50% |
| **Swap** | Per client, mechanical | NAP, logo, brand colors, hours, service area, meta/title patterns | ~15% |
| **Trade content** | Per vertical, written once | Symptom cards, service explanations, educational copy, 3-step process | ~20% |
| **Signature** | Per client, always | The one memorable element + the hero angle it comes from | ~15% |

**Key insight:** the signature layer is not optional polish — it's the whole product. It falls out of the intake's differentiator question, not from design invention.

## Fix #3 (outreach-level): spec-build the home page only
If building before anyone has said yes, build one page, not four. The home page sells. Finish the other three after they're paying.

## Technical decision: Custom Values vs build-time generator

**Option A — GHL Custom Values:** Client-editable, changes propagate live, native to GHL. But only works if they render inside raw custom-code blocks. Locks the site to GHL hosting.

**Option B — build-time generator (recommended):** A `config.json` per client plus a script that emits the four HTML files. Portable across all three hosting paths, no dependency on GHL rendering behavior, trivial to diff and version, faster to iterate than a page builder.

**Option C — both:** Generator produces the site; a handful of fields (phone, hours, current offer) stay as Custom Values. Best of both, slightly more setup.

Recommendation: use B now, add C's Custom Values later if clients actually ask to self-edit. Most won't.

## The bigger idea: GHL Snapshot per vertical

Don't think "website template." Think GHL Snapshot per vertical. A garage-door snapshot carries the whole funnel: 4-page site, chatbot with trade-specific training, lead-notification workflow, missed-call text-back, review-request automation, pipeline stages, SMS templates. Deploy to a new sub-account and 90% of the build is done.

The website is the lead magnet. The snapshot is the business.
