Skip to content

feat(marketing): restructure the tenant homepage around one hero message - #10

Merged
Asapteejo merged 1 commit into
mainfrom
feat/tenant-homepage-structure
Sep 18, 2026
Merged

Asapteejo merged 1 commit into
mainfrom
feat/tenant-homepage-structure

Conversation

@Asapteejo

Copy link
Copy Markdown
Owner

Layout and hierarchy pass from the tenant public-site audit. The correctness fixes shipped separately in #9; this branch was stacked on it, so the diff here is the restructure only.

The root cause

The hero carried the eyebrow, headline, subhead, three CTAs, a four-field search, three stat cards, the image, an overlay panel and the how-it-works steps — inside one bordered box. Everything competed for width, which is why individual pieces looked broken rather than any single one being badly styled.

Changes

Hero — headline, subhead, one primary CTA, with the search spanning the full width beneath it. The placeholders were clipped ("City, state, or estate r", "Max budget (") because the four-column form sat inside the 1.2fr text column; they are no longer clipped, and are shorter ("City or area", "Max budget").

How it works — out of the hero's 0.8fr sidebar and into its own full-width section below the featured listings, three across at md+, stacked on mobile. Each step card had ~121px in the sidebar and the copy broke to one word per line.

Trust strip — never renders a zero. A new tenant's homepage read EXPERT MARKETERS 0 / HAPPY CLIENTS 0 in large type above the fold; on a site whose pitch is trust, that is worse than showing nothing. Zero-count cards are dropped and the strip disappears entirely if fewer than two survive. Labels and notes remain CMS-editable.

Property cards — flex columns with clamped location/title/description, a 4:3 aspect-ratio image instead of a fixed h-72, and the price/CTA row pinned to the bottom, so one verbose listing no longer stretches every sibling in its row.

Measured, at 1440px and 375px

Before After
"How it works" step width @1440 121px 395px
Step width @375 235px 335px
Clipped placeholders 2 0
Footer links sharing a line 6 0
Hero CTAs 3 1 primary + 1 quiet

Keeping copy CMS-driven

No strings were hardcoded back in and the schema is unchanged. Two consequences:

  • SectionHeading's description is now optional — the journey section has a CMS heading but no supporting sentence, and inventing one would hardcode copy tenants cannot edit.
  • The journey section has no eyebrow badge, because the CMS heading is itself the section name ("How it works") and the badge only repeated it.

Design tokens, the serif/sans pairing, tenant branding and dark mode are untouched.

Verification

npm run check green (537 tests, typecheck, lint, build) and the full E2E suite green (65 passed), including the footer regression test added in #9.

Not yet verified: the positive case for the trust strip (≥2 non-zero stats → strip renders). My local tenant has testimonials but no public listings, so fewer than two qualify and it correctly renders nothing. I will confirm on the live tenant after deploy.

🤖 Generated with Claude Code

The hero carried the eyebrow, headline, subhead, three CTAs, a four-field
search, three stat cards, the image, an overlay panel AND the how-it-works
steps inside one bordered box. Everything competed for width, which is what
made individual pieces look broken rather than any one of them being badly
styled.

Hero now holds the headline, subhead and a single primary CTA, with the search
spanning its full width underneath. That alone fixed the clipped placeholders
("City, state, or estate r", "Max budget ("), which were clipped because the
four-column form sat in the 1.2fr text column; the placeholders are also
shorter now.

How it works moved out of the hero's 0.8fr sidebar into its own full-width
section below the featured listings, three across at md+ and stacked on
mobile. In the sidebar each step card had ~121px and the copy broke to one
word per line; they now measure 395px at 1440 and 335px at 375.

The trust strip never renders a zero. A brand-new tenant's homepage read
"EXPERT MARKETERS 0 / HAPPY CLIENTS 0" in large type above the fold — on a
site whose entire pitch is trust, that is worse than showing nothing. Cards
with a zero count are dropped and the strip disappears entirely if fewer than
two survive. Labels and notes stay CMS-editable.

Property cards are flex columns with clamped location/title/description, a 4:3
aspect-ratio image instead of a fixed h-72, and the price/CTA row pinned to the
bottom, so one verbose listing no longer stretches every sibling in its row.

Two notes on keeping copy CMS-driven: SectionHeading's description is now
optional, because the journey section has a CMS heading but no supporting
sentence and inventing one would hardcode copy tenants cannot edit; and the
journey section has no eyebrow badge, because the CMS heading is itself the
section name and the badge only repeated it.

Measured at 1440 and 375: step cards 121px -> 395px, no clipped placeholders,
footer stacked, hero down to one primary CTA.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
estate-os Ready Ready Preview Sep 18, 2026 11:16am UTC

@Asapteejo
Asapteejo merged commit 5b867c3 into main Sep 18, 2026
4 checks passed

This branch was successfully deployed

1 active deployment
Preview — 44d9f4cc Deployed Sep 18, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant