diff --git a/apps/web-roo-code/src/app/reviewer/ReviewerContent.tsx b/apps/web-roo-code/src/app/reviewer/ReviewerContent.tsx new file mode 100644 index 000000000000..7abcea5ce04f --- /dev/null +++ b/apps/web-roo-code/src/app/reviewer/ReviewerContent.tsx @@ -0,0 +1,218 @@ +"use client" + +import { ArrowRight, Blocks, BookMarked, ListChecks, LucideIcon } from "lucide-react" +import Image from "next/image" + +import { Button } from "@/components/ui" +import { AnimatedBackground } from "@/components/homepage" +import { AgentCarousel } from "@/components/reviewer/agent-carousel" +import { EXTERNAL_LINKS } from "@/lib/constants" +import { trackGoogleAdsConversion } from "@/lib/analytics/google-ads" + +interface Feature { + icon: LucideIcon + title: string + description: string | React.ReactNode + logos?: string[] +} + +const howItWorks: Feature[] = [ + { + icon: Blocks, + title: "Our agents, your provider keys", + description: ( + <> +

+ We orchestrate the review, optimize the hell out of the prompts, integrate with GitHub, keep you + properly posted. +

+

We're thoughtful about token usage, but not incentivized to skimp to grow our margins.

+ + ), + }, + { + icon: ListChecks, + title: "Advanced reasoning and workflows", + description: + "We optimize for state-of-the-art reasoning models and leverage powerful workflows (Diff analysis → Context Gathering → Impact Mapping → Contract checks) to produce crisp, actionable comments at the right level.", + }, + { + icon: BookMarked, + title: "Fully repository-aware", + description: + "Reviews traverse code ownership, dependency graphs, and historical patterns to surface risk and deviations, not noise.", + }, +] + +// Workaround for next/image choking on these for some reason +import hero from "/public/heroes/agent-reviewer.png" + +export function ReviewerContent() { + return ( + <> +
+ +
+
+
+
+

+ Get comprehensive code reviews that save you time, not tokens. +

+
+

+ Regular AI code review tools cap model usage to protect their margins from fixed + monthly prices. That leads to shallow prompts, limited context, and missed + issues. +

+

+ Roo Code's PR Reviewer flips the script: you bring your own key and + leverage it to the max – to find real issues, increase code quality and keep + your PR queue moving. +

+
+
+
+ + + (cancel anytime) + +
+
+
+
+
+ Example of a code review generated by Roo Code PR Reviewer +
+
+
+
+
+
+ +
+
+
+
+

+ Why Roo's PR Reviewer is so much better +

+
+
+ +
+
    + {howItWorks.map((feature, index) => { + const Icon = feature.icon + return ( +
  • + +

    + {feature.title} +

    +
    + {feature.description} +
    + {feature.logos && ( +
    + {feature.logos.map((logo) => ( + {`${logo} + ))} +
    + )} +
  • + ) + })} +
+
+
+
+ +
+
+
+
+

+ The first member of a whole new team +

+ +

+ Architecture, coding, reviewing, testing, debugging, documenting, designing –{" "} + almost everything we do today is mostly through our agents. Now we're + bringing them to you. +

+

+ Roo's PR Reviewer isn't yet another single-purpose tool to add to your already + complicated stack. +
+ It's the first member of your AI-powered development team. More agents are shipping + soon. +

+
+
+ +
+ +
+
+
+ + {/* CTA Section */} +
+
+
+

Stop wasting time.

+

+ Give Roo Code's PR Reviewer your model key and turn painful reviews into a tangible + quality advantage. +

+
+ +
+
+
+
+ + ) +} diff --git a/apps/web-roo-code/src/app/reviewer/page.tsx b/apps/web-roo-code/src/app/reviewer/page.tsx index 5f0cc3fe52ac..7f7cce862a6b 100644 --- a/apps/web-roo-code/src/app/reviewer/page.tsx +++ b/apps/web-roo-code/src/app/reviewer/page.tsx @@ -1,13 +1,8 @@ -import { ArrowRight, Blocks, BookMarked, ListChecks, LucideIcon } from "lucide-react" import type { Metadata } from "next" -import { Button } from "@/components/ui" -import { AnimatedBackground } from "@/components/homepage" -import { AgentCarousel } from "@/components/reviewer/agent-carousel" import { SEO } from "@/lib/seo" import { ogImageUrl } from "@/lib/og" -import { EXTERNAL_LINKS } from "@/lib/constants" -import Image from "next/image" +import { ReviewerContent } from "./ReviewerContent" const TITLE = "PR Reviewer" const DESCRIPTION = @@ -61,207 +56,6 @@ export const metadata: Metadata = { ], } -interface Feature { - icon: LucideIcon - title: string - description: string | React.ReactNode - logos?: string[] -} - -const howItWorks: Feature[] = [ - { - icon: Blocks, - title: "Our agents, your provider keys", - description: ( - <> -

- We orchestrate the review, optimize the hell out of the prompts, integrate with GitHub, keep you - properly posted. -

-

We're thoughtful about token usage, but not incentivized to skimp to grow our margins.

- - ), - }, - { - icon: ListChecks, - title: "Advanced reasoning and workflows", - description: - "We optimize for state-of-the-art reasoning models and leverage powerful workflows (Diff analysis → Context Gathering → Impact Mapping → Contract checks) to produce crisp, actionable comments at the right level.", - }, - { - icon: BookMarked, - title: "Fully repository-aware", - description: - "Reviews traverse code ownership, dependency graphs, and historical patterns to surface risk and deviations, not noise.", - }, -] - -// Workaround for next/image choking on these for some reason -import hero from "/public/heroes/agent-reviewer.png" - export default function AgentReviewerPage() { - return ( - <> -
- -
-
-
-
-

- Get comprehensive code reviews that save you time, not tokens. -

-
-

- Regular AI code review tools cap model usage to protect their margins from fixed - monthly prices. That leads to shallow prompts, limited context, and missed - issues. -

-

- Roo Code's PR Reviewer flips the script: you bring your own key and leverage - it to the max – to find real issues, increase code quality and keep your PR - queue moving. -

-
-
-
- - - (cancel anytime) - -
-
-
-
-
- Example of a code review generated by Roo Code PR Reviewer -
-
-
-
-
-
- -
-
-
-
-

- Why Roo's PR Reviewer is so much better -

-
-
- -
-
    - {howItWorks.map((feature, index) => { - const Icon = feature.icon - return ( -
  • - -

    - {feature.title} -

    -
    - {feature.description} -
    - {feature.logos && ( -
    - {feature.logos.map((logo) => ( - {`${logo} - ))} -
    - )} -
  • - ) - })} -
-
-
-
- -
-
-
-
-

- The first member of a whole new team -

- -

- Architecture, coding, reviewing, testing, debugging, documenting, designing –{" "} - almost everything we do today is mostly through our agents. Now we're - bringing them to you. -

-

- Roo's PR Reviewer isn't yet another single-purpose tool to add to your already - complicated stack. -
- It's the first member of your AI-powered development team. More agents are shipping - soon. -

-
-
- -
- -
-
-
- - {/* CTA Section */} -
-
-
-

Stop wasting time.

-

- Give Roo Code's PR Reviewer your model key and turn painful reviews into a tangible - quality advantage. -

-
- -
-
-
-
- - ) + return } diff --git a/apps/web-roo-code/src/lib/analytics/google-ads.ts b/apps/web-roo-code/src/lib/analytics/google-ads.ts new file mode 100644 index 000000000000..29ced92e99ea --- /dev/null +++ b/apps/web-roo-code/src/lib/analytics/google-ads.ts @@ -0,0 +1,17 @@ +/** + * Google Ads conversion tracking utilities + */ + +/** + * Track a Google Ads conversion event + * This should only be called after user consent has been given + */ +export function trackGoogleAdsConversion() { + if (typeof window !== "undefined" && window.gtag) { + window.gtag("event", "conversion", { + send_to: "AW-17391954825/VtOZCJe_77MbEInXkOVA", + value: 10.0, + currency: "USD", + }) + } +}