Skip to content

new landing page#400

Open
Marcellolepoe wants to merge 1 commit intomainfrom
aaron/landing-page-refresh
Open

new landing page#400
Marcellolepoe wants to merge 1 commit intomainfrom
aaron/landing-page-refresh

Conversation

@Marcellolepoe
Copy link
Collaborator

…and type fixes

…and type fixes

Co-authored-by: Cursor <cursoragent@cursor.com>
@gemini-code-assist
Copy link

Summary of Changes

Hello @Marcellolepoe, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly overhauls the main landing page for the seo-www application, introducing a modern, interactive design with new content and dynamic UI components. It also enhances the blog section with improved content filtering and search capabilities, alongside general routing and styling adjustments to support the new structure.

Highlights

  • New Content Pages: Added three new MDX content files: 'We Built 50 Backlinks in 30 Days: Here's What Happened', 'GEO vs SEO: Why AI Search Changes Everything', and 'Introducing Fluid Posts: Complete SEO, Automated'.
  • Landing Page Redesign: Completely refactored the main index page (/index.tsx) to implement a new, interactive landing page design using a variety of new components like SerpClimbDemo, SocialProofSection, JourneySection, ResultsSection, FeaturesSection, PricingSection, and CTASection.
  • New UI Components: Introduced several new React components for the landing page, including HeroSearchEngineCarousel, HeroSerpClimb, LandingPageMockup, LandingSectionsDemo, SerpClimbDemo, and SerpZoomAnimation, to create dynamic and engaging visual effects.
  • Blog Page Enhancements: Updated the blog index page (/blog/index.tsx) to include category filtering and search functionality, improving content discoverability.
  • Routing and Navigation Updates: Modified routeTree.gen.ts to add new routes for /landing-mockup and /landing-demo, and adjusted the footer and header navigation links.
  • Styling and Configuration Fixes: Applied minor styling updates to the WaitListDialog buttons, corrected a CSS @font-face rule, added new font styles and a grid-flow animation, and configured the Vite development server to use localhost.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • apps/seo-www/content/backlink-experiment-results.mdx
    • Added a new MDX content file detailing a backlink experiment and its results.
  • apps/seo-www/content/geo-seo-future.mdx
    • Added a new MDX content file explaining Generative Engine Optimization (GEO) and its impact on AI search.
  • apps/seo-www/content/introducing-fluid-posts.mdx
    • Added a new MDX content file announcing the introduction of Fluid Posts and its features.
  • apps/seo-www/src/routeTree.gen.ts
    • Modified to import and register new routes for /landing-mockup and /landing-demo.
  • apps/seo-www/src/routes/-components/footer.tsx
    • Modified to remove the 'Solution' group and its associated links from the footer navigation.
  • apps/seo-www/src/routes/-components/founders/founder-hero.tsx
    • Modified to replace the previous hero section content with the new SerpClimbDemo component.
  • apps/seo-www/src/routes/-components/founders/hero-search-engine-carousel.tsx
    • Added a new component to display an animated carousel of search engine logos.
  • apps/seo-www/src/routes/-components/founders/hero-serp-climb.tsx
    • Added a new component to simulate a search engine results page (SERP) climbing animation.
  • apps/seo-www/src/routes/-components/founders/landing-page-mockup.tsx
    • Added a new component that provides a full mockup of a landing page, including various sections and interactive elements.
  • apps/seo-www/src/routes/-components/founders/landing-sections-demo.tsx
    • Added a new component to demonstrate different background themes and section layouts for landing pages.
  • apps/seo-www/src/routes/-components/founders/serp-climb-v2.tsx
    • Added an updated SERP climb demo component featuring Google, AI Overview, and ChatGPT graphics with interactive states.
  • apps/seo-www/src/routes/-components/founders/serp-zoom-animation.tsx
    • Added a new component to display a SERP zoom animation effect.
  • apps/seo-www/src/routes/-components/header.tsx
    • Modified navigation links, replacing 'Founders' and 'SEO Experts' with 'Blog'.
  • apps/seo-www/src/routes/-components/waitlist-dialog.tsx
    • Modified the styling of the 'Book a call' and 'Join the waitlist' buttons for visual consistency.
  • apps/seo-www/src/routes/blog/index.tsx
    • Modified to implement category filtering and search functionality for blog posts, enhancing user experience.
  • apps/seo-www/src/routes/index.tsx
    • Completely refactored the main landing page to integrate new interactive sections and components, replacing previous founder-focused sections.
  • apps/seo-www/src/routes/landing-demo.tsx
    • Added a new route and component to showcase various landing page section themes.
  • apps/seo-www/src/routes/landing-mockup.tsx
    • Added a new route and component to display a complete landing page mockup.
  • apps/seo-www/src/styles.css
    • Modified to include new font styles for 'EB Garamond Variable' and a keyframe animation for 'grid-flow'.
  • apps/seo-www/vite.config.ts
    • Modified Vite configuration to explicitly set the development server host to 'localhost'.
  • package.json
    • Added a new script dev:localhost to simplify running the seo-www application on localhost.
  • packages/ui/src/styles.css
    • Corrected the CSS rule for @font-face to ensure proper font loading.
Activity
  • Marcellolepoe has made significant progress on the seo-www application, introducing a completely new landing page experience.
  • The changes involve extensive refactoring of existing pages and the addition of numerous new components and content files.
  • The pull request indicates a focus on enhancing user engagement and content presentation through dynamic animations and improved navigation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 25, 2026

Open in StackBlitz

pnpm add https://pkg.pr.new/rectangular-labs/monorepo/@rectangular-labs/emails@400
pnpm add https://pkg.pr.new/rectangular-labs/monorepo/@rectangular-labs/loro-file-system@400
pnpm add https://pkg.pr.new/rectangular-labs/monorepo/@rectangular-labs/result@400

commit: 074f967

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a significant and impressive redesign of the landing page and blog, incorporating a host of new components, animations, and content. The changes replace the previous structure with a more modern, visually engaging user experience, notably featuring complex animations to demonstrate search engine ranking improvements. My feedback is focused on enhancing the maintainability of these new additions by refactoring large components and abstracting hardcoded values.

Comment on lines +34 to +41
if (activeCategory !== "all") {
posts = posts.filter(post =>
post.tags?.some(tag =>
tag.toLowerCase().replace(/\s+/g, "-") === activeCategory ||
tag.toLowerCase().includes(activeCategory.replace(/-/g, " "))
)
);
}

Choose a reason for hiding this comment

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

medium

The tag filtering logic combines a slug match with a substring match, which can be brittle. For example, a tag 'Advanced SEO Insights' would match the category 'SEO Insights', which might not be the intended behavior. A more robust approach is to rely on a single, consistent matching strategy. Normalizing the post tags to slugs and comparing them directly against the activeCategory ID would make the filtering more predictable and less error-prone.

    if (activeCategory !== "all") {
      posts = posts.filter(post => 
        post.tags?.some(tag => 
          tag.toLowerCase().replace(/\s+/g, "-") === activeCategory
        )
      );
    }

Comment on lines +780 to +787
<div className="flex items-baseline justify-center gap-1">
<span className="font-serif text-4xl text-neutral-900 sm:text-5xl dark:text-white">$99</span>
<span className="text-neutral-500 dark:text-neutral-400">/mo</span>
</div>
<div className="mt-2 flex flex-col items-center gap-1">
<span className="text-lg text-neutral-400 line-through">$199/mo</span>
<span className="inline-block rounded-full bg-amber-400 px-4 py-1.5 font-bold text-amber-900 text-sm">50% OFF</span>
</div>

Choose a reason for hiding this comment

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

medium

The prices $99 and $199 are hardcoded here. It's a good practice to extract such values, which are likely to change in the future, into constants defined at the top of the module. This makes them easier to manage and update, reducing the risk of errors during future price adjustments.

Suggested change
<div className="flex items-baseline justify-center gap-1">
<span className="font-serif text-4xl text-neutral-900 sm:text-5xl dark:text-white">$99</span>
<span className="text-neutral-500 dark:text-neutral-400">/mo</span>
</div>
<div className="mt-2 flex flex-col items-center gap-1">
<span className="text-lg text-neutral-400 line-through">$199/mo</span>
<span className="inline-block rounded-full bg-amber-400 px-4 py-1.5 font-bold text-amber-900 text-sm">50% OFF</span>
</div>
<div className="flex items-baseline justify-center gap-1">
<span className="font-serif text-4xl text-neutral-900 sm:text-5xl dark:text-white">${SALE_PRICE}</span>
<span className="text-neutral-500 dark:text-neutral-400">/mo</span>
</div>
<div className="mt-2 flex flex-col items-center gap-1">
<span className="text-lg text-neutral-400 line-through">${REGULAR_PRICE}/mo</span>
<span className="inline-block rounded-full bg-amber-400 px-4 py-1.5 font-bold text-amber-900 text-sm">50% OFF</span>
</div>

Comment on lines 950 to 963
function App() {
return (
<main className="bg-background">
<FounderHero />
<FounderWhatItIs />
<FounderTransparency />
<FounderStrategist />
<FounderGrowth />
<FounderIntervention />
<FounderCTA />
<main className="relative">
<LiquidGradientBackground />
<SerpClimbDemo />
<SocialProofSection />
<JourneySection />
<ResultsSection />
<FeaturesSection />
<PricingSection />
<CTASection />
</main>
);
}

Choose a reason for hiding this comment

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

medium

This file is over 900 lines long and defines multiple large, distinct components for the landing page sections. To improve maintainability, readability, and reusability, it's highly recommended to extract each section component (SocialProofSection, JourneySection, ResultsSection, FeaturesSection, PricingSection, CTASection) into its own file. These can be organized under a common directory like apps/seo-www/src/routes/-components/landing/.

@github-actions
Copy link
Contributor

Cloudflare Preview URL for WWW 🎈 : https://pr-400.rectangularlabs.com (custom domain)
Cloudflare Preview URL for SEO 🎈 : https://pr-400.fluidposts.com (custom domain)
Cloudflare Preview URL for SEO WWW 🎈 : https://www-pr-400.fluidposts.com (custom domain)
Cloudflare Preview URL for SEO Contact 🎈 : https://contact-pr-400.fluidposts.com (custom domain)

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