Skip to content

chore: new landing page #2369

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

Conversation

NathanFlurry
Copy link
Member

Changes

This was referenced Apr 17, 2025
Copy link
Member Author

NathanFlurry commented Apr 17, 2025


How to use the Graphite Merge Queue

Add the label merge-queue to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

Copy link

cloudflare-workers-and-pages bot commented Apr 17, 2025

Deploying rivet with  Cloudflare Pages  Cloudflare Pages

Latest commit: 457916b
Status: ✅  Deploy successful!
Preview URL: https://d3c00e3c.rivet.pages.dev
Branch Preview URL: https://04-17-chore-new-landing-page.rivet.pages.dev

View logs

@NathanFlurry NathanFlurry changed the base branch from 04-16-chore_fix_building_hub_archive to graphite-base/2369 April 17, 2025 08:23
@NathanFlurry NathanFlurry force-pushed the 04-17-chore_new_landing_page branch from aed27c8 to 13cb45c Compare April 17, 2025 08:23
@NathanFlurry NathanFlurry changed the base branch from graphite-base/2369 to main April 17, 2025 08:23
@NathanFlurry NathanFlurry force-pushed the 04-17-chore_new_landing_page branch 2 times, most recently from 27f83e4 to 4058a43 Compare April 17, 2025 18:36
@NathanFlurry NathanFlurry force-pushed the 04-17-chore_new_landing_page branch from 4058a43 to cae5143 Compare April 30, 2025 16:25
Copy link

cloudflare-workers-and-pages bot commented Apr 30, 2025

Deploying rivet-studio with  Cloudflare Pages  Cloudflare Pages

Latest commit: 457916b
Status: ✅  Deploy successful!
Preview URL: https://3ff49f4a.rivet-studio.pages.dev
Branch Preview URL: https://04-17-chore-new-landing-page.rivet-studio.pages.dev

View logs

Copy link

cloudflare-workers-and-pages bot commented Apr 30, 2025

Deploying rivet-hub with  Cloudflare Pages  Cloudflare Pages

Latest commit: 457916b
Status: ✅  Deploy successful!
Preview URL: https://7e3dcbfe.rivet-hub-7jb.pages.dev
Branch Preview URL: https://04-17-chore-new-landing-page.rivet-hub-7jb.pages.dev

View logs

@NathanFlurry NathanFlurry force-pushed the 04-17-chore_new_landing_page branch from cae5143 to eada525 Compare May 5, 2025 23:22
@NathanFlurry NathanFlurry marked this pull request as ready for review May 5, 2025 23:22
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

PR Summary

This PR replaces the existing Framer-based landing page with a new marketing-focused implementation using Next.js and Tailwind CSS, featuring multiple specialized sections for better user engagement and product presentation.

Key changes:

  • Removed Framer-based implementation (/site/src/app/(v2)/(framer)/) in favor of new marketing components
  • Added comprehensive landing page with Hero, Features, Frameworks, and Tutorial sections in /site/src/app/(v2)/(marketing)/page.tsx
  • Implemented interactive components like CopyCommand for terminal commands and tabbed interface in CommandCenterSection
  • Created dedicated sections for community engagement and testimonials in CommunitySection
  • Added responsive tutorial cards showcasing different Rivet features with hover effects

9 file(s) reviewed, 11 comment(s)
Edit PR Review Bot Settings | Greptile


// Command Center section
export const CommandCenterSection = () => {
const [activeTab, setActiveTab] = useState("monitoring");
Copy link

Choose a reason for hiding this comment

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

logic: activeTab state is set but no content changes based on tab selection

Comment on lines +47 to +56
<div className="flex space-x-12">
{features.map((feature, index) => (
<div key={index} className="flex items-center">
<div className="text-white/40 mr-2">
<Icon icon={faCheck} className="text-sm" />
</div>
<span className="text-sm text-white/80">{feature}</span>
</div>
))}
</div>
Copy link

Choose a reason for hiding this comment

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

style: features list lacks mobile responsiveness - will overflow on small screens

Suggested change
<div className="flex space-x-12">
{features.map((feature, index) => (
<div key={index} className="flex items-center">
<div className="text-white/40 mr-2">
<Icon icon={faCheck} className="text-sm" />
</div>
<span className="text-sm text-white/80">{feature}</span>
</div>
))}
</div>
<div className="flex flex-wrap gap-4 justify-center">
{features.map((feature, index) => (
<div key={index} className="flex items-center">
<div className="text-white/40 mr-2">
<Icon icon={faCheck} className="text-sm" />
</div>
<span className="text-sm text-white/80">{feature}</span>
</div>
))}
</div>

Comment on lines +18 to +20
<div
onClick={handleCopy}
className="inline-flex items-center bg-black/40 rounded-md border border-white/10 px-4 py-2.5 font-mono text-sm group relative cursor-pointer active:scale-[0.98] active:bg-black/60 transition-all"
Copy link

Choose a reason for hiding this comment

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

style: Use button element instead of div for better accessibility. Add role="button" and keyboard handlers (onKeyDown) to support keyboard interaction.

Suggested change
<div
onClick={handleCopy}
className="inline-flex items-center bg-black/40 rounded-md border border-white/10 px-4 py-2.5 font-mono text-sm group relative cursor-pointer active:scale-[0.98] active:bg-black/60 transition-all"
<button
onClick={handleCopy}
onKeyDown={e => e.key === 'Enter' && handleCopy()}
className="inline-flex items-center bg-black/40 rounded-md border border-white/10 px-4 py-2.5 font-mono text-sm group relative cursor-pointer active:scale-[0.98] active:bg-black/60 transition-all"

// Copy the command without the $ symbol
navigator.clipboard.writeText(command);
setCopied(true);
setTimeout(() => setCopied(false), 1000);
Copy link

Choose a reason for hiding this comment

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

style: Consider using useEffect cleanup to clear timeout on unmount to prevent memory leaks.

Comment on lines +81 to +87
{platforms.map((platform, index) => (
<Link key={index} href={platform.href} className="group">
<div className="flex items-center justify-center h-10 px-5 rounded-md border border-zinc-700 bg-zinc-900 group-hover:bg-zinc-800 group-hover:border-zinc-600 transition-all">
<Icon icon={platform.icon} className="text-white/60 group-hover:text-white/90 mr-2 transition-colors" />
<span className="text-sm text-white/60 group-hover:text-white/90 transition-colors">{platform.name}</span>
</div>
</Link>
Copy link

Choose a reason for hiding this comment

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

logic: Missing rel="noopener noreferrer" for external links and target="_blank" attributes for better security and UX

Suggested change
{platforms.map((platform, index) => (
<Link key={index} href={platform.href} className="group">
<div className="flex items-center justify-center h-10 px-5 rounded-md border border-zinc-700 bg-zinc-900 group-hover:bg-zinc-800 group-hover:border-zinc-600 transition-all">
<Icon icon={platform.icon} className="text-white/60 group-hover:text-white/90 mr-2 transition-colors" />
<span className="text-sm text-white/60 group-hover:text-white/90 transition-colors">{platform.name}</span>
</div>
</Link>
{platforms.map((platform, index) => (
<Link key={index} href={platform.href} target="_blank" rel="noopener noreferrer" className="group">
<div className="flex items-center justify-center h-10 px-5 rounded-md border border-zinc-700 bg-zinc-900 group-hover:bg-zinc-800 group-hover:border-zinc-600 transition-all">
<Icon icon={platform.icon} className="text-white/60 group-hover:text-white/90 mr-2 transition-colors" />
<span className="text-sm text-white/60 group-hover:text-white/90 transition-colors">{platform.name}</span>
</div>
</Link>

asChild
className="px-4 pr-6 py-3 text-base bg-gradient-to-b from-[#FF5C00] to-[#FF5C00]/90 border border-[#FF5C00]/30 hover:border-[#FF5C00]/60 transition-all duration-200 group"
>
<Link href="#deploy" className="flex items-center justify-center relative">
Copy link

Choose a reason for hiding this comment

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

logic: href='#deploy' points to a non-existent anchor. Should likely point to an actual deployment page route

asChild
className="px-4 pr-6 py-3 text-base border-white/10 hover:border-white/30 transition-all duration-200 group"
>
<Link href="#demo" className="flex items-center justify-center relative">
Copy link

Choose a reason for hiding this comment

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

logic: href='#demo' points to a non-existent anchor. Should likely point to an actual demo booking page route

"use client";

import Link from "next/link";
import { Icon, faCode, faLayerGroup, faTerminal, faDesktop, faListCheck, faArrowsToCircle, faArrowRight, faDatabase } from "@rivet-gg/icons";
Copy link

Choose a reason for hiding this comment

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

style: faListCheck is imported but never used in the component

Suggested change
import { Icon, faCode, faLayerGroup, faTerminal, faDesktop, faListCheck, faArrowsToCircle, faArrowRight, faDatabase } from "@rivet-gg/icons";
import { Icon, faCode, faLayerGroup, faTerminal, faDesktop, faArrowsToCircle, faArrowRight, faDatabase } from "@rivet-gg/icons";

</div>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
{tutorials.map((tutorial, index) => (
<Link key={index} href={tutorial.href} className="group">
Copy link

Choose a reason for hiding this comment

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

style: using array index as key could cause issues with React reconciliation if tutorials are reordered - consider using a unique id

}: {
title: string;
description: string;
faIcon: any;
Copy link

Choose a reason for hiding this comment

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

style: faIcon type 'any' should be more specific. Consider using IconDefinition from @fortawesome/fontawesome-svg-core

Suggested change
faIcon: any;
faIcon: IconDefinition;

@NathanFlurry NathanFlurry force-pushed the 04-17-chore_new_landing_page branch from eada525 to afd09c8 Compare May 13, 2025 05:57
@NicholasKissel NicholasKissel force-pushed the 04-17-chore_new_landing_page branch from afd09c8 to 9f2515e Compare May 13, 2025 20:16
@NathanFlurry NathanFlurry force-pushed the 04-17-chore_new_landing_page branch from 9f2515e to 457916b Compare May 19, 2025 17:14
Copy link
Contributor

graphite-app bot commented May 19, 2025

Merge activity

  • May 19, 2:25 PM EDT: NathanFlurry added this pull request to the Graphite merge queue.
  • May 19, 2:25 PM EDT: CI is running for this pull request on a draft pull request (#2449) due to your merge queue CI optimization settings.
  • May 19, 2:26 PM EDT: Merged by the Graphite merge queue via draft PR: #2449.

graphite-app bot pushed a commit that referenced this pull request May 19, 2025
<!-- Please make sure there is an issue that this PR is correlated to. -->

## Changes

<!-- If there are frontend changes, please include screenshots. -->
@graphite-app graphite-app bot closed this May 19, 2025
@graphite-app graphite-app bot deleted the 04-17-chore_new_landing_page branch May 19, 2025 18:26
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