Skip to content

Restructure homepage social-proof stack and polish the above-the-fold#1029

Merged
AvdLee merged 4 commits into
masterfrom
docs/homepage-cro-social-proof-stack
May 27, 2026
Merged

Restructure homepage social-proof stack and polish the above-the-fold#1029
AvdLee merged 4 commits into
masterfrom
docs/homepage-cro-social-proof-stack

Conversation

@AvdLee
Copy link
Copy Markdown
Owner

@AvdLee AvdLee commented May 27, 2026

Summary

PR 2 of 2 applying page-cro + marketing-psychology to the homepage.

Targets docs/homepage-cro-quick-wins (PR #1028) so both PRs can be reviewed and run locally together. Includes the original social-proof restructure plus two follow-up polish commits driven by reviewing the live preview.

What changes

1. Slim authority strip (commit 1)

Two large App Store badges side-by-side become one slim row. Vertical margins drop from 4rem to 2rem so it reads as a credibility strip, not a section. Both badges remain clickable, separate Plausible events preserved.

2. Homepage logo strip (commit 1)

Reuse the existing TrustedBrands partial on the homepage, between the authority strip and the Senja carousel. New optional title prop on TrustedBrands so the homepage can read "Used by iOS developers at" without affecting /for-teams.

3. Microcopy placement fix (commit 2)

On desktop, Navigation was display: flex; align-items: center;, which placed the <ul> of CTAs and the microcopy <p> side-by-side. Switched to flex-direction: column; align-items: flex-start; so the microline renders on its own line directly under the Free download button.

4. App Store strip rebalance (commit 2)

Trimmed the redundant copy. Badges already encode ★ 4.8 and Apple-Featured visually, repeating them in text reads as over-stacked authority. Copy line now reads 25,000+ developers · 250+ teams — the new info the badges don't show. Centered horizontally on desktop, stacked on mobile.

5. Hero wordmark restored + shy top-nav wordmark (commit 3)

  • The big "RocketSim" script wordmark is back above the homepage H1.
  • The top-nav wordmark fades out while the hero wordmark is in view, then fades back in once you scroll past it (IntersectionObserver on #hero-wordmark toggles an is-shy class on .navbar-brand).
  • Pages without #hero-wordmark (/for-teams, /terms, /privacy, docs, blog) keep the nav wordmark visible at all times.

6. Mid-page reorder (commit 3)

The AIDA funnel previously jumped Attention → Desire (testimonials) → Interest (features), then dribbled out. New order:

Order Section AIDA stage
1 Hero Attention
2 Slim authority strip + brand logos Light authority
3 Top 3 features Interest
4 Senja testimonial carousel (moved here) Desire
5 CallToAction banner (new on homepage) Action
6 Remaining 18 features, Team Insights, Status Bar, Newsletter, Social, Support Continued discovery

Implementation: Features.astro now accepts optional take / skip props so the same component renders both slices. The early duplicate SubscribeToNewsletter is dropped (its position no longer makes sense once Reviews moves down); the late one stays as the single newsletter touchpoint.

Honest numbers

  • 25,000+ developers = unique users in the past 365 days (App Store Connect).
  • 250+ teams = current active teams.

Files

  • docs/src/old/components/AppStore.astro — slim authority strip, then centered + trimmed.
  • docs/src/old/components/Navigation.astro — column-flex on desktop, microcopy now stacks below CTAs.
  • docs/src/old/components/Header.astro — optional logo / logoAlt props re-introduced; renders the big wordmark above the H1 inside #hero-wordmark when provided.
  • docs/src/old/components/Features.astro — optional take / skip props.
  • docs/src/layouts/Base.astro — new shyNavLogoInit script with IntersectionObserver.
  • docs/src/styles/navigation.css.navbar-brand.is-shy modifier + opacity transition.
  • docs/src/layouts/partials/TrustedBrands.astro — optional title prop.
  • docs/src/pages/index.astro — full mid-page reorder, hero wordmark passed back in, CallToAction added.

Test plan

  • Hero shows the big script wordmark above the H1; rocket app icon still on the right.
  • Microcopy "Get started for free, no signup. Works with Xcode 16+." renders on its own line directly under the Free download button.
  • App Store strip is centered, badges intact and clickable, copy line reads 25,000+ developers · 250+ teams, no rating/Apple-Featured text duplication.
  • Scroll past the hero → top-nav wordmark fades in. Scroll back to top → fades out.
  • /for-teams, /terms, /privacy show the top-nav wordmark at all times (unchanged).
  • Homepage section order: top 3 features → Senja testimonial carousel → CallToAction banner → remaining 18 features → Team Insights → Status Bar → Newsletter → Social → Support.
  • Free download button still fires App+Store+Install Plausible event and the UTM-rewrite script still rewrites #js-header-app-store-button.
  • Both App Store badges still link out and still fire App+Store+Install events with separate placement=landing-app-store-reviews / placement=landing-app-store-featured props.
  • /for-teams logo strip unchanged ("Trusted by developers at leading tech companies.").
  • CI quality gate: npm run lint && npm run format:check && npm run typecheck && npm run build all pass.

Reviewer note

Once PR #1028 merges, GitHub auto-retargets this PR to master.

AvdLee added 3 commits May 27, 2026 09:08
Follow-up to the copy-only PR. Apply the page-cro principle of placing
trust signals near CTAs while keeping each tier visually lighter than
the next, so the homepage gets the brand-logo credibility we already
show on /for-teams without becoming heavy on authority.

- AppStore.astro: collapse the two large badges into a single slim
  authority strip. The badges shrink to ~6.5rem, monochrome-friendly,
  and now flank a copy line that adds the new, honest numbers:
  "★4.8 on the App Store · Apple Featured: Essential Apps for
  Developers · 25,000+ developers · 250+ teams". Vertical margins cut
  from 4rem to 2rem so it reads as a strip, not a section. Plausible
  events and App Store URL untouched.
- TrustedBrands partial: accept an optional `title` prop that overrides
  the content-collection title. Default behaviour (and the /for-teams
  page) is unchanged.
- Homepage: insert <TrustedBrands title="Used by iOS developers at" />
  between the slim authority strip and the Senja testimonial carousel.

Final social-proof ladder above and just below the fold:
  hero -> ★4.8 + Apple Featured + 25K devs + 250 teams (strip)
       -> Used by iOS developers at <logos> (logo carousel)
       -> Senja testimonial carousel (rich quotes)

Each tier answers a distinct question (Is it legit? Who uses it? What
do they say?), so the layered signals reinforce rather than compete.
Two small polish fixes flagged in the live preview:

- Navigation: the desktop `nav` was `display: flex; align-items:
  center`, which placed the `<ul>` of CTAs and the microcopy `<p>`
  side-by-side instead of stacking. Switch to `flex-direction:
  column; align-items: flex-start;` so the microcopy renders on
  its own line under the Free download button.
- App Store strip: drop the redundant "★4.8 on the App Store ·
  Apple Featured: Essential Apps for Developers" copy — the badges
  already encode those claims visually, repeating them in text
  reads as over-stacked authority. Keep only the new numbers
  ("25,000+ developers · 250+ teams") so each element does a
  distinct job (badges = authority, text = scale).
Restore the big "RocketSim" script wordmark above the homepage H1
and make the top-nav wordmark fade out while the hero wordmark is
in view, so the two never compete for attention. Then reorder the
mid-page so the AIDA funnel reads Attention → light authority →
Interest (top 3 features) → Desire (testimonials) → Action
(mid-page CTA) instead of jumping from Attention straight to
Desire and looping back to Interest.

Hero wordmark
- Header.astro accepts optional `logo` / `logoAlt` props again.
  When provided, render the wordmark above the H1 inside a
  `#hero-wordmark` wrapper so the smart-nav script can observe
  it. for-teams / terms / privacy don't pass the props, so they
  stay title-only.
- index.astro re-imports `rocketsim-logo.svg` and passes the
  wordmark only on the homepage.

Shy top-nav wordmark
- navigation.css: `.navbar-brand` gets a 250ms opacity transition
  and an `is-shy` modifier that fades + hides the wordmark.
- Base.astro: a new `shyNavLogoInit` runs on `astro:page-load`,
  looks for `#hero-wordmark`, and uses an IntersectionObserver
  to toggle `is-shy` on `.navbar-brand` while the hero wordmark
  is in view. Pages without the hero wordmark are unaffected.

Mid-page restructure
- Features.astro now accepts optional `take` / `skip` props so
  the same component can render a slice of the homepage feature
  set. Default behaviour (no props) is unchanged.
- index.astro: split the feature stream — show the top 3 above
  the Senja testimonials, slot the existing CallToAction banner
  ("Ready to Build Apps Faster?") right after the testimonial
  peak, then render the remaining 18 features. The early
  duplicate SubscribeToNewsletter is dropped since its position
  no longer makes sense; the late one stays.
@AvdLee AvdLee changed the title Restructure homepage social-proof stack into a ladder Restructure homepage social-proof stack and polish the above-the-fold May 27, 2026
@AvdLee AvdLee requested review from Copilot and ngnijland May 27, 2026 08:14
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Restructures the homepage social-proof stack and polishes the above-the-fold: slims the App Store badges into a credibility strip, reuses TrustedBrands on the homepage, restores the hero wordmark with a "shy" top-nav wordmark toggled by an IntersectionObserver, fixes microcopy placement under the CTA, and reorders mid-page sections into a clearer AIDA funnel.

Changes:

  • AppStore.astro becomes a slim authority strip; Navigation.astro switches to column flex so microcopy stacks under the CTA; Header.astro re-introduces optional logo/logoAlt and renders #hero-wordmark.
  • Base.astro adds shyNavLogoInit and navigation.css adds an .is-shy modifier on .navbar-brand; TrustedBrands.astro gains an optional title override.
  • Features.astro accepts optional take/skip; index.astro reorders the homepage and adds TrustedBrands and CallToAction, while the early SubscribeToNewsletter is removed.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
docs/src/styles/navigation.css Adds .navbar-brand.is-shy opacity/visibility modifier and transition.
docs/src/pages/index.astro Imports TrustedBrands, CallToAction, and the logo image; reorders sections and passes hero wordmark.
docs/src/old/components/Navigation.astro Switches desktop nav to column flex so microcopy renders below the CTA list.
docs/src/old/components/Header.astro Adds optional logo/logoAlt props and renders #hero-wordmark above the H1.
docs/src/old/components/Features.astro Adds optional take/skip slicing props.
docs/src/old/components/AppStore.astro Rebuilt as a slim authority strip with badges + "25,000+ developers · 250+ teams" copy.
docs/src/layouts/partials/TrustedBrands.astro Adds optional title prop overriding the section's default title.
docs/src/layouts/Base.astro Adds shyNavLogoInit that toggles .is-shy on .navbar-brand via an IntersectionObserver on #hero-wordmark.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…cial-proof-stack

# Conflicts:
#	docs/src/old/components/Navigation.astro
Base automatically changed from docs/homepage-cro-quick-wins to master May 27, 2026 11:32
@AvdLee AvdLee merged commit fac345f into master May 27, 2026
@AvdLee AvdLee deleted the docs/homepage-cro-social-proof-stack branch May 27, 2026 11:33
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.

2 participants