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. ]
36 pages 30 indexable 6 noindex
Public marketplace
11 pages
| Page | Robots | Size |
|---|---|---|
| About LiNK — Real Estate Without the Middleman about.html | indexed | 986 words |
| How to Buy a House Without a Realtor buy.html | indexed | 1,497 words |
| Concierge Services — Full Support Selling concierge.htmlPublic tier selection. Pricing from the client comp — unconfirmed. | indexed | 958 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,877 words |
| FAQ — Selling & Buying Without an Agent faq.htmlCarries the anchored account questions contact.html deep-links to. | indexed | 1,770 words |
| How to Sell Your House Without a Realtor how-it-works.html | indexed | 3,363 words |
| For Sale By Owner — Buy & Sell Without Realtor Fees index.htmlHomepage. Hero matches garza.link; image-gate cross-fade below. | indexed | 1,051 words |
| Sample Closing Attorneys, PLC — Real Estate Services, Richmond VA provider.html | indexed | 882 words |
| Houses for Sale in Richmond, VA — No Commissions search.htmlLive facets + Leaflet map, always in sync (one matching engine). | indexed | 1,427 words |
| Sell My House Without a Realtor sell.html | indexed | 1,282 words |
| Find Real Estate Professionals in Richmond, VA services.html | indexed | 940 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,242 words |
| 1204 Westover Hills Blvd, Richmond VA — $455,000 listing-1204-westover-hills-blvd.html | indexed | 1,208 words |
| 1214 Rothsay Cir, Richmond VA — $425,000 listing-1214-rothsay-cir.html | indexed | 1,225 words |
| 1310 Bellevue Ave, Richmond VA — $379,900 listing-1310-bellevue-ave.html | indexed | 1,207 words |
| 13905 Midlothian Tpke, Richmond VA — $549,000 listing-13905-midlothian-tpke.html | indexed | 1,204 words |
| 1400 Summit Ave, Richmond VA — $274,500 listing-1400-summit-ave.html | indexed | 1,195 words |
| 1801 Grove Ave, Richmond VA — $615,000 listing-1801-grove-ave.html | indexed | 1,223 words |
| 2201 E Broad St, Richmond VA — $298,000 listing-2201-e-broad-st.html | indexed | 1,224 words |
| 2416 Winterfield Rd, Richmond VA — $692,000 listing-2416-winterfield-rd.html | indexed | 1,206 words |
| 2809 Hanes Ave, Richmond VA — $289,000 listing-2809-hanes-ave.html | indexed | 1,205 words |
| 3010 W Clay St, Richmond VA — $318,000 listing-3010-w-clay-st.html | indexed | 1,198 words |
| 3300 Monument Ave, Richmond VA — $749,000 listing-3300-monument-ave.html | indexed | 1,249 words |
| 4120 Grove Ave, Richmond VA — $468,000 listing-4120-grove-ave.html | indexed | 1,238 words |
| 4417 Kensington Ave, Richmond VA — $512,000 listing-4417-kensington-ave.html | indexed | 1,242 words |
| 506 N 32nd St, Richmond VA — $232,500 listing-506-n-32nd-st.html | indexed | 1,232 words |
| 5501 Riverside Dr, Richmond VA — $825,000 listing-5501-riverside-dr.html | indexed | 1,216 words |
| 715 N 25th St, Richmond VA — $264,900 listing-715-n-25th-st.html | indexed | 1,233 words |
| 908 Hanover Ave, Richmond VA — $389,500 listing-908-hanover-ave.html | indexed | 1,227 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,327 words |
| My Profile — Account Settings profile.htmlChristine 2026-07-20. Role-conditional — use the chips to switch role. | noindex | 2,648 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,577 words |
LiNK staff (admin)
2 pages
| Page | Robots | Size |
|---|---|---|
| Concierge Services Management — LiNK staff dashboard-admin-concierge.htmlChristine's Admin spec §Concierge. Four-role refund chain with dual approval. | noindex | 1,878 words |
| Staff Overview dashboard-admin.html | noindex | 1,471 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 |
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 .