Skip to content

Landing Page Performance Polish#694

Merged
arul28 merged 3 commits into
mainfrom
ade/ok-wanna-improve-landing-page-9518a236
Jul 3, 2026
Merged

Landing Page Performance Polish#694
arul28 merged 3 commits into
mainfrom
ade/ok-wanna-improve-landing-page-9518a236

Conversation

@arul28

@arul28 arul28 commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Summary

Describe the change.

What Changed

Key files and behaviors.

Validation

How you tested.

Risks

Anything to watch.

ADE   Open in ADE  ·  ade/ok-wanna-improve-landing-page-9518a236 branch  ·  PR #694

Summary by CodeRabbit

  • New Features

    • Updated the homepage hero and showcase sections with refreshed layout, spacing, and visual styling.
    • Improved tab transitions and progress indicators in the showcase area for smoother playback.
  • Bug Fixes

    • Video demos now start and stop more reliably as content enters or leaves view.
    • Reduced-motion behavior is better respected for animated elements.
  • Style

    • Refined button, heading, badge, and panel sizing for a cleaner, more balanced presentation.

Greptile Summary

This PR polishes the web landing page presentation and preview behavior. The main changes are:

  • Simplifies the hero by removing floating agent badges.
  • Tightens hero typography, spacing, CTA grouping, and device composition sizing.
  • Reworks the ship showcase with mounted tab panels and a CSS progress animation.
  • Adjusts demo video playback to start near the viewport and pause on cleanup.
  • Removes a checked-in Vite dev log and ignores it going forward.
  • Allows Cloudflare tunnel hostnames for the local Vite dev server.

Confidence Score: 5/5

Safe to merge with minimal risk.

Changes are localized to landing-page presentation, animation timing, and local dev configuration; no correctness, accessibility, or security issues were identified.

No files require special attention.

T-Rex T-Rex Logs

What T-Rex did

  • Compared the base hero and updated hero by reviewing the before and after videos and screenshots.
  • Compared the base showcase polish and the updated showcase polish, including tab rail alignment, panel counts, and reduced-motion behavior.
  • Observed the FeatureGrid video scroll capture before and after polish, noting playback states and reduced-motion during testing.
  • Verified host behavior transitions from blocked to allowed by comparing before and after Vite host logs.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
apps/web/src/app/pages/HomePage.tsx Removes floating hero agent badges and tightens hero/device spacing.
apps/web/src/components/editorial/DeviceComposition.tsx Refines hero device composition sizing and replaces filter shadows with box shadows.
apps/web/src/components/editorial/FeatureGrid.tsx Adjusts demo video intersection behavior to preload playback near the viewport and pause on cleanup.
apps/web/src/components/editorial/ShipShowcase.tsx Reworks showcase rendering to use mounted tab panels, CSS progress animation, and lighter shadow effects.
apps/web/vite.config.ts Allows Vite dev server access from Cloudflare tunnel hostnames.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant User
participant HomePage
participant Hero as Hero sections
participant Showcase as ShipShowcase
participant FeatureGrid

User->>HomePage: Visit landing page
HomePage->>Hero: Render CompetitorEquation, Lede, DeviceComposition
Hero-->>User: Compact hero and device composition
HomePage->>Showcase: Render showcase tabs
Showcase->>Showcase: Mount active and next tab panels
Showcase-->>User: Crossfade selected tab and CSS progress fill
HomePage->>FeatureGrid: Render demo video grid
FeatureGrid->>FeatureGrid: Play videos near viewport, pause offscreen
FeatureGrid-->>User: Lightweight interactive demos
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant User
participant HomePage
participant Hero as Hero sections
participant Showcase as ShipShowcase
participant FeatureGrid

User->>HomePage: Visit landing page
HomePage->>Hero: Render CompetitorEquation, Lede, DeviceComposition
Hero-->>User: Compact hero and device composition
HomePage->>Showcase: Render showcase tabs
Showcase->>Showcase: Mount active and next tab panels
Showcase-->>User: Crossfade selected tab and CSS progress fill
HomePage->>FeatureGrid: Render demo video grid
FeatureGrid->>FeatureGrid: Play videos near viewport, pause offscreen
FeatureGrid-->>User: Lightweight interactive demos
Loading

Reviews (3): Last reviewed commit: "ShipShowcase: render the selected tab un..." | Re-trigger Greptile

Perf: remove 12 infinite framer-motion badge animations (hero bubbles cut
entirely — redundant with the logo row), CSS-driven showcase progress bar,
keep all four showcase tabs mounted with a CSS crossfade instead of
AnimatePresence remount/re-decode, drop blur() glow filters, swap
drop-shadow for box-shadow on screenshot frames, and autoplay all demo
clips near-viewport with IO play/pause (faststart mp4s stream instantly).

Layout: hero CTAs reduced to Mac + iOS buttons with quiet GitHub/Docs
links, smaller headline/equation, device trio resized to stay fully
on-screen on laptops, showcase tabs moved beside the section title, and
the showcase copy column widened.

Hygiene: untrack apps/web/.vite-dev.log and gitignore it; allow
trycloudflare hosts on the dev server for preview tunnels.

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

vercel Bot commented Jul 3, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
ade Ready Ready Preview, Comment Jul 3, 2026 7:07am

@mintlify

mintlify Bot commented Jul 3, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
ade-ac1c6011 🟢 Ready View Preview Jul 3, 2026, 6:24 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@arul28

arul28 commented Jul 3, 2026

Copy link
Copy Markdown
Owner Author

@copilot review but do not make fixes

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR removes the AgentBadge/HeroAgentBadges hero overlay feature and its usage in HomePage, tunes sizing/spacing in CompetitorEquation and Lede, replaces CSS filter-based shadows with boxShadow across DeviceComposition and ShipShowcase, reworks ShipShowcase's tab animation from framer-motion crossfades to CSS-driven transitions with a new keyframe, adjusts FeatureGrid autoplay timing, and updates Vite dev-server config and gitignore.

Changes

Marketing Site Visual and Behavior Updates

Layer / File(s) Summary
Remove hero agent badges
apps/web/src/components/editorial/AgentBadge.tsx, apps/web/src/components/editorial/HeroAgentBadges.tsx, apps/web/src/app/pages/HomePage.tsx
Deletes AgentBadge and HeroAgentBadges components; removes their import/render from HomePage and reduces hero top padding.
Competitor equation sizing
apps/web/src/components/editorial/CompetitorEquation.tsx
Reduces logo wrapper dimensions, equals-label font clamp, and ADE dock icon size.
DeviceComposition shadow/layout refinement
apps/web/src/components/editorial/DeviceComposition.tsx
Swaps drop-shadow filters for boxShadow and adjusts responsive positioning for desktop, TUI, and iOS panels.
Lede headline and CTA rework
apps/web/src/components/editorial/Lede.tsx
Reduces headline font size and top margin, restructures CTA buttons, and converts GitHub/Docs links to underlined text.
FeatureGrid autoplay tuning
apps/web/src/components/editorial/FeatureGrid.tsx
Adjusts IntersectionObserver threshold/rootMargin to start video earlier and pauses video on cleanup.
ShipShowcase animation rework
apps/web/src/components/editorial/ShipShowcase.tsx, apps/web/src/styles/globals.css
Replaces framer-motion crossfades and drop-shadow filters with CSS-driven panel visibility, boxShadow, and a new ship-progress keyframe animation.
Dev config updates
apps/web/vite.config.ts, apps/web/.gitignore
Adds allowedHosts for .trycloudflare.com and ignores .vite-dev.log.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • arul28/ADE#582: Adds AgentBadge/HeroAgentBadges and wires them into HomePage, which this PR now removes.

Suggested labels: web

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main change set, which focuses on landing page performance and layout polish.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ade/ok-wanna-improve-landing-page-9518a236

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
apps/web/src/components/editorial/CompetitorEquation.tsx (1)

123-123: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Consider switching this drop-shadow filter to boxShadow for consistency.

The PR's stated goal is replacing drop-shadow filters with boxShadow for performance across screenshot/device frames (as done in DeviceComposition/ShipShowcase). This ADE icon still uses drop-shadow-[0_14px_48px_rgba(124,58,237,0.6)], which remains a more expensive filter-based shadow.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/components/editorial/CompetitorEquation.tsx` at line 123, The
ADE icon styling in CompetitorEquation still uses a filter-based drop-shadow,
which is inconsistent with the rest of the PR’s boxShadow migration. Update the
icon’s className styling to use a boxShadow-based shadow instead of drop-shadow,
following the same approach used in DeviceComposition and ShipShowcase, and keep
the existing size/shape classes unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/web/src/components/editorial/ShipShowcase.tsx`:
- Around line 764-769: The stacked panels in ShipShowcase currently rely on DOM
paint order, so backward transitions can show the outgoing panel above the
incoming one during the fade. Update the panel container/className logic in the
ShipShowcase grid cell to assign an explicit z-index based on selection/order so
the active panel always renders on top during the 420ms transition, preventing
the incorrect crossfade.
- Around line 754-776: The current tab stack in ShipShowcase keeps every panel
mounted, so the hidden ImageStage media still gets eagerly fetched. Update the
tab rendering logic around TABS.map, active, and ImageStage so inactive tabs do
not receive their image src or are not rendered until first activation, then
remain mounted afterward to preserve the existing crossfade behavior.

---

Nitpick comments:
In `@apps/web/src/components/editorial/CompetitorEquation.tsx`:
- Line 123: The ADE icon styling in CompetitorEquation still uses a filter-based
drop-shadow, which is inconsistent with the rest of the PR’s boxShadow
migration. Update the icon’s className styling to use a boxShadow-based shadow
instead of drop-shadow, following the same approach used in DeviceComposition
and ShipShowcase, and keep the existing size/shape classes unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 42147f79-87bd-4bf9-8425-62e2d58268dc

📥 Commits

Reviewing files that changed from the base of the PR and between ae05925 and 4ed2dbb.

⛔ Files ignored due to path filters (1)
  • apps/web/.vite-dev.log is excluded by !**/*.log
📒 Files selected for processing (11)
  • apps/web/.gitignore
  • apps/web/src/app/pages/HomePage.tsx
  • apps/web/src/components/editorial/AgentBadge.tsx
  • apps/web/src/components/editorial/CompetitorEquation.tsx
  • apps/web/src/components/editorial/DeviceComposition.tsx
  • apps/web/src/components/editorial/FeatureGrid.tsx
  • apps/web/src/components/editorial/HeroAgentBadges.tsx
  • apps/web/src/components/editorial/Lede.tsx
  • apps/web/src/components/editorial/ShipShowcase.tsx
  • apps/web/src/styles/globals.css
  • apps/web/vite.config.ts
💤 Files with no reviewable changes (2)
  • apps/web/src/components/editorial/HeroAgentBadges.tsx
  • apps/web/src/components/editorial/AgentBadge.tsx

Comment thread apps/web/src/components/editorial/ShipShowcase.tsx
Comment thread apps/web/src/components/editorial/ShipShowcase.tsx

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

quality · Phase 1 Thermo Dual-Review → Synthesize + Fix · COMPLETE

This PR polishes the marketing landing page in apps/web with a focus on smoother animations and reduced rendering cost (lighter shadows/filters, CSS-driven progress, and updated media playback behavior).

Changes:

  • Reworks the ShipShowcase rotation/progress to use a keyed CSS animation and crossfade transitions (removing framer-motion presence transitions).
  • Adjusts landing-page hero/layout sizing and device compositions (replacing several filter effects with box-shadow).
  • Improves demo-tile video playback behavior via IntersectionObserver tuning, and cleans up/ignores a committed Vite dev log.

Reviewed changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
apps/web/vite.config.ts Allows .trycloudflare.com hosts for Vite dev server.
apps/web/src/styles/globals.css Adds @keyframes ship-progress for the showcase progress bar.
apps/web/src/components/editorial/ShipShowcase.tsx Reworks showcase transitions/progress; replaces filter effects with box shadows.
apps/web/src/components/editorial/Lede.tsx Tightens hero typography/spacing; refactors CTA layout.
apps/web/src/components/editorial/FeatureGrid.tsx Starts demo video playback nearer the viewport; pauses on cleanup.
apps/web/src/components/editorial/DeviceComposition.tsx Adjusts composition sizing/positioning; replaces filter shadows with box shadows.
apps/web/src/components/editorial/CompetitorEquation.tsx Tweaks logo/icon sizing and typography for the hero row.
apps/web/src/app/pages/HomePage.tsx Removes hero badge layer; tightens device section spacing.
apps/web/src/components/editorial/HeroAgentBadges.tsx Removes hero agent badge component.
apps/web/src/components/editorial/AgentBadge.tsx Removes agent badge component.
apps/web/.vite-dev.log Deletes accidentally committed dev log.
apps/web/.gitignore Ignores .vite-dev.log going forward.

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

Comment on lines +754 to +758
{/* Stage — copy + big image deck. All four tabs stay mounted and stacked
in the same grid cell; switching only crossfades opacity, so the big
screenshots decode once instead of re-decoding on every tab change. */}
<div className="relative mt-[clamp(12px,1.6vw,26px)] grid min-h-[clamp(460px,48vw,740px)]">
{TABS.map((item, index) => {

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Applied in cd6d248 together with CodeRabbit's matching finding: inactive tabs no longer mount their media up front — first-activation mounting plus one-tab-ahead prefetch bounds the initial load while keeping switches decode-free.

Review feedback (Copilot + CodeRabbit): mounting all four tabs eagerly
fetched every tab's images near-initial. Tabs now mount on first
activation plus the next tab in rotation (prefetched a full 18s cycle
ahead so crossfades stay decode-jank-free) and stay mounted after.
Selected panel also gets z-index priority so backward tab switches
layer the incoming panel above the outgoing fade.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@arul28

arul28 commented Jul 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cd6d248bf6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +787 to +792
{mountedTabs.has(index) ? (
<>
<CopyPanel tab={item} />
<ImageStage tab={item} />
</>
) : null}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Mount clicked tabs before activating them

On a cold page load only tabs 0 and 1 are in mountedTabs, so clicking directly to "Pull requests" or "Work tools" makes that unmounted tab selected while this branch renders null for its content until the follow-up effect runs and starts fetching its images. That leaves the active showcase panel empty/late-loading for manual tab jumps, which regresses the previous behavior where the selected tab rendered immediately; mount the clicked index synchronously in selectTab or render the selected tab unconditionally.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Applied in c1bb0f5: the selected tab now renders unconditionally, so direct clicks to a not-yet-mounted tab show content immediately; the effect still persists it (plus the next tab) in mountedTabs.

Codex review: clicking straight to a not-yet-mounted tab rendered an
empty panel until the mount effect ran. The selected tab now always
renders; the effect still persists it (plus the next tab) in
mountedTabs afterward.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@arul28

arul28 commented Jul 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. You're on a roll.

Reviewed commit: c1bb0f5cae

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@arul28 arul28 merged commit 607c382 into main Jul 3, 2026
29 checks passed
@arul28 arul28 deleted the ade/ok-wanna-improve-landing-page-9518a236 branch July 3, 2026 07:20
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