Developer index
Every page in the LiNK prototype, grouped by surface. Generated by scanning the folder — each row reads the page’s own <title> and robots meta, so this index cannot drift from what actually exists.
[ INTERNAL — not client-facing, noindex, and excluded from sitemap.xml. Most signed-in and staff screens are deliberately unreachable from the homepage; this page is how you get to them. ]
38 pages 30 indexable 8 noindex
Public marketplace
11 pages
| Page | Robots | Size |
|---|---|---|
| About LiNK — Real Estate Without the Middleman about.html | indexed | 990 words |
| How to Buy a House Without a Realtor buy.html | indexed | 1,501 words |
| Concierge Services — Full Support Selling concierge.htmlPublic tier selection. Pricing from the client comp — unconfirmed. | indexed | 962 words |
| Contact LiNK — Support, Live Chat & Call Back contact.htmlRebuilt to Christine's 2026-07-20 spec. Try the submit — it swaps to the confirmation state. | indexed | 1,881 words |
| FAQ — Selling & Buying Without an Agent faq.htmlCarries the anchored account questions contact.html deep-links to. | indexed | 1,774 words |
| How to Sell Your House Without a Realtor how-it-works.html | indexed | 3,367 words |
| For Sale By Owner — Buy & Sell Without Realtor Fees index.htmlHomepage. Hero matches garza.link; image-gate cross-fade below. | indexed | 1,055 words |
| Sample Closing Attorneys, PLC — Real Estate Services, Richmond VA provider.html | indexed | 886 words |
| Houses for Sale in Richmond, VA — No Commissions search.htmlLive facets + Leaflet map, always in sync (one matching engine). | indexed | 1,431 words |
| Sell My House Without a Realtor sell.html | indexed | 1,287 words |
| Find Real Estate Professionals in Richmond, VA services.html | indexed | 944 words |
Property detail pages
18 pages
| Page | Robots | Size |
|---|---|---|
| 11 S Belmont Ave, Richmond VA — $342,000 listing-11-s-belmont-ave.html | indexed | 1,245 words |
| 1204 Westover Hills Blvd, Richmond VA — $455,000 listing-1204-westover-hills-blvd.html | indexed | 1,211 words |
| 1214 Rothsay Cir, Richmond VA — $425,000 listing-1214-rothsay-cir.html | indexed | 1,228 words |
| 1310 Bellevue Ave, Richmond VA — $379,900 listing-1310-bellevue-ave.html | indexed | 1,210 words |
| 13905 Midlothian Tpke, Richmond VA — $549,000 listing-13905-midlothian-tpke.html | indexed | 1,207 words |
| 1400 Summit Ave, Richmond VA — $274,500 listing-1400-summit-ave.html | indexed | 1,199 words |
| 1801 Grove Ave, Richmond VA — $615,000 listing-1801-grove-ave.html | indexed | 1,226 words |
| 2201 E Broad St, Richmond VA — $298,000 listing-2201-e-broad-st.html | indexed | 1,227 words |
| 2416 Winterfield Rd, Richmond VA — $692,000 listing-2416-winterfield-rd.html | indexed | 1,209 words |
| 2809 Hanes Ave, Richmond VA — $289,000 listing-2809-hanes-ave.html | indexed | 1,208 words |
| 3010 W Clay St, Richmond VA — $318,000 listing-3010-w-clay-st.html | indexed | 1,201 words |
| 3300 Monument Ave, Richmond VA — $749,000 listing-3300-monument-ave.html | indexed | 1,252 words |
| 4120 Grove Ave, Richmond VA — $468,000 listing-4120-grove-ave.html | indexed | 1,241 words |
| 4417 Kensington Ave, Richmond VA — $512,000 listing-4417-kensington-ave.html | indexed | 1,245 words |
| 506 N 32nd St, Richmond VA — $232,500 listing-506-n-32nd-st.html | indexed | 1,235 words |
| 5501 Riverside Dr, Richmond VA — $825,000 listing-5501-riverside-dr.html | indexed | 1,219 words |
| 715 N 25th St, Richmond VA — $264,900 listing-715-n-25th-st.html | indexed | 1,236 words |
| 908 Hanover Ave, Richmond VA — $389,500 listing-908-hanover-ave.html | indexed | 1,230 words |
Account
3 pages
| Page | Robots | Size |
|---|---|---|
| Log In to LiNK login.htmlChristine 2026-07-20. Log in only. SSO, MFA, 5 error states, recovery, devices. | noindex | 2,322 words |
| My Profile — Account Settings profile.htmlChristine 2026-07-20. Role-conditional — use the chips to switch role. | noindex | 2,653 words |
| Create Your LiNK Account register.htmlSplit out of login.html 2026-08-12 — the header's Sign Up CTA had no page of its own. | indexed | 1,557 words |
Service providers
2 pages
| Page | Robots | Size |
|---|---|---|
| Offer your services on LiNK provider-onboarding.htmlChristine's Onboarding spec, all 15 items. Live Leaflet coverage map. | noindex | 2,317 words |
| Rate a service provider provider-rating.htmlChristine 2026-07-20. DR-8 shown in BOTH states; 1–2 stars triggers 'Are you sure?'. | noindex | 1,878 words |
Internal reference
2 pages
| Page | Robots | Size |
|---|---|---|
| Developer index developer.htmlThis page. | noindex | — |
| Component Styleguide (internal) styleguide.htmlAll 16 tab-13-SDC components. Four render from components.py, so demo == implementation. | noindex | 4,964 words |
Other
2 pages
| Page | Robots | Size |
|---|---|---|
| Messages — Provider Dashboard dashboard-messages.html | noindex | 1,349 words |
| My Provider Dashboard dashboard-provider.html | noindex | 1,346 words |
Artifacts & contracts
The files the Drupal build reads. Nothing here is hand-maintained twice — each is generated from, or is itself, a single source.
| File | What it is |
|---|---|
| components.json | SDC handoff contract — props with JSON Schema types, slots, component-vs-page-section triage |
| sitemap.xml | Generated from each page's own noindex + canonical |
| robots.txt | Generated alongside the sitemap |
| BRIEF.md | The build contract and its decision record |
| SEO-PLAN.md | Per-page query map |
| css/tokens.css | @theme static block — lifts verbatim into the Drupal theme's src/input.css |
| css/extras.css | Only what utilities cannot express. Layered, so it cannot outrank a component. |
| components.py | Canonical markup for step-tabs, rating-stars, message-thread, alert-toast |
| listing_data.py | Single source for every property fact in the prototype |
| link_fields.py | GENERATED field catalogue — every field, value list and vocabulary in the build manual |
| make-field-map.py | Reads link_build_manual_*.xlsx and regenerates link_fields.py |
| verify-fields.py | Fails the build if a manual field reaches no page, or if a v6 invariant is broken |
Rebuilding
Pages are generated. Edit a make-*.py, never the HTML it writes — the exceptions are index.html, compare.html, how-it-works.html and the two dashboard overviews, which are hand-authored. Run the generators, then sync-shared.py once.
for g in make-pages make-listings make-dashboards make-buyer-dashboards \
make-provider-pages make-account-pages make-bid-page \
make-styleguide make-admin-pages make-developer; do
python3 $g.py
done
python3 sync-shared.py # tokens + header/appheader/footer into every page
python3 make-sitemap.py # sitemap.xml + robots.txt from each page's own robots meta
python3 make-manifest.py # components.json
python3 ~/.claude/skills/website-prototype-builder/scripts/verify.py .