- Shipped
- September 5, 2026 at 6:20 PM UTC
- Author
- Kamo
- Commit
- 0b63128
The page this replaces was a prototype wearing a production URL. It posted to `http://localhost:8082`, so no application it ever collected reached anything. It named "Mark Johnson with American Lending Group, NMLS 343298954" as every visitor's loan officer. Its footer claimed a California Residential Mortgage Lending Act licence, an office at "123 Mortgage Lane", and a complaints line reading "1-800-XXX-XXXX" — under whichever tenant's logo happened to load. The consent text asked borrowers to agree to terms from "[Broker Name]". **Addressed by product, not by host.** `/loan/mortgage/{productId}`, with an optional `/{memberId}` for a loan officer's referral link. The product id names the organization, so the page works identically on a lender's own `apps.theirdomain.com` and on `apps.kamocrm.com` — same logo, colours, favicon, backgrounds and disclosures either way. That is what makes white-labelling possible for a lender who has not configured DNS, and it is why nothing here resolves a tenant from the hostname: a proxy to the shared API host loses `X-Forwarded-Host`, and every such lender would have resolved to the platform. A product whose market is not a mortgage market answers 404, identically to a deleted one, and the page says the application does not exist. **The footer is now the organization's own record** — legal name, NMLS with a Consumer Access link, real address and contact, the state licences it entered, its fair-housing mark, and its published policy links. A value the lender has not entered renders nothing at all. An empty footer is a gap somebody can fill; the previous one was a false regulatory statement nobody could detect. **Design.** Two columns: a fixed brand-coloured spine carrying the mark, the officer and a continuous progress rail, against paper. The spine is the whole idea — it answers "who am I giving this to" and "how much more is there" permanently, which are the two anxieties of this form. Fraunces for the statements, Inter Tight for the work, both self-hosted so neither the image build nor a borrower's first paint depends on Google. Tabular figures everywhere a number is typed. One orchestrated moment on load; after that, motion only answers an action, and `MotionConfig reducedMotion="user"` makes that a real preference rather than one framer ignores. **Submission** goes to SecurityService's public endpoint, fail-closed on an Capcha ***, and lands on a confirmation page that is a real route — it survives a refresh and a forwarded link. The receipt email is sent server-side from the same disclosure profile the footer uses, so the two cannot drift. Verified in a headless browser at 1440 and 390: five steps, validation, error states, the confirmation, the not-found page, and axe clean (WCAG 2.1 AA) on all four — one real contrast failure found and fixed in the rail.