diff --git a/apps/web-roo-code/public/logos/amazon.svg b/apps/web-roo-code/public/logos/amazon.svg new file mode 100644 index 0000000000..0c7c30dd62 --- /dev/null +++ b/apps/web-roo-code/public/logos/amazon.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/anthropic.svg b/apps/web-roo-code/public/logos/anthropic.svg new file mode 100644 index 0000000000..5b81844cbd --- /dev/null +++ b/apps/web-roo-code/public/logos/anthropic.svg @@ -0,0 +1 @@ +Anthropic \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/apple.svg b/apps/web-roo-code/public/logos/apple.svg new file mode 100644 index 0000000000..1b2c0e33d1 --- /dev/null +++ b/apps/web-roo-code/public/logos/apple.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/bytedance.svg b/apps/web-roo-code/public/logos/bytedance.svg new file mode 100644 index 0000000000..96f1bf235c --- /dev/null +++ b/apps/web-roo-code/public/logos/bytedance.svg @@ -0,0 +1 @@ +ByteDance \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/carvana.svg b/apps/web-roo-code/public/logos/carvana.svg new file mode 100644 index 0000000000..e43bda0b4e --- /dev/null +++ b/apps/web-roo-code/public/logos/carvana.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/deepseek.svg b/apps/web-roo-code/public/logos/deepseek.svg new file mode 100644 index 0000000000..dc224e43a4 --- /dev/null +++ b/apps/web-roo-code/public/logos/deepseek.svg @@ -0,0 +1 @@ +DeepSeek \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/gemini.svg b/apps/web-roo-code/public/logos/gemini.svg new file mode 100644 index 0000000000..87736bbe09 --- /dev/null +++ b/apps/web-roo-code/public/logos/gemini.svg @@ -0,0 +1 @@ +Gemini \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/grok.svg b/apps/web-roo-code/public/logos/grok.svg new file mode 100644 index 0000000000..efb1a6183c --- /dev/null +++ b/apps/web-roo-code/public/logos/grok.svg @@ -0,0 +1 @@ +Grok \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/kimi.svg b/apps/web-roo-code/public/logos/kimi.svg new file mode 100644 index 0000000000..4355c522a2 --- /dev/null +++ b/apps/web-roo-code/public/logos/kimi.svg @@ -0,0 +1 @@ +Kimi \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/microsoft.svg b/apps/web-roo-code/public/logos/microsoft.svg new file mode 100644 index 0000000000..827f833a98 --- /dev/null +++ b/apps/web-roo-code/public/logos/microsoft.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web-roo-code/public/logos/mistral.svg b/apps/web-roo-code/public/logos/mistral.svg new file mode 100644 index 0000000000..32c6cbd3fd --- /dev/null +++ b/apps/web-roo-code/public/logos/mistral.svg @@ -0,0 +1 @@ +Mistral \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/netflix.svg b/apps/web-roo-code/public/logos/netflix.svg new file mode 100644 index 0000000000..4c635dc232 --- /dev/null +++ b/apps/web-roo-code/public/logos/netflix.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web-roo-code/public/logos/ollama.svg b/apps/web-roo-code/public/logos/ollama.svg new file mode 100644 index 0000000000..cc887e3dcf --- /dev/null +++ b/apps/web-roo-code/public/logos/ollama.svg @@ -0,0 +1 @@ +Ollama \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/openai.svg b/apps/web-roo-code/public/logos/openai.svg new file mode 100644 index 0000000000..50d94d6c10 --- /dev/null +++ b/apps/web-roo-code/public/logos/openai.svg @@ -0,0 +1 @@ +OpenAI \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/qwen.svg b/apps/web-roo-code/public/logos/qwen.svg new file mode 100644 index 0000000000..a4bb382a63 --- /dev/null +++ b/apps/web-roo-code/public/logos/qwen.svg @@ -0,0 +1 @@ +Qwen \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/rakuten.svg b/apps/web-roo-code/public/logos/rakuten.svg new file mode 100644 index 0000000000..f237d17881 --- /dev/null +++ b/apps/web-roo-code/public/logos/rakuten.svg @@ -0,0 +1,35 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/web-roo-code/public/logos/red-hat.svg b/apps/web-roo-code/public/logos/red-hat.svg new file mode 100644 index 0000000000..c72c4dc5e2 --- /dev/null +++ b/apps/web-roo-code/public/logos/red-hat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/web-roo-code/src/app/page.tsx b/apps/web-roo-code/src/app/page.tsx index 51b798f0bf..b062d5845c 100644 --- a/apps/web-roo-code/src/app/page.tsx +++ b/apps/web-roo-code/src/app/page.tsx @@ -5,11 +5,12 @@ import { getVSCodeDownloads } from "@/lib/stats" import { Button } from "@/components/ui" import { AnimatedBackground, - InstallSection, + CodeExample, + CompanyLogos, + FAQSection, Features, + InstallSection, Testimonials, - FAQSection, - CodeExample, } from "@/components/homepage" import { EXTERNAL_LINKS } from "@/lib/constants" import { ArrowRight } from "lucide-react" @@ -28,12 +29,12 @@ export default async function Home() {
-

- An entire AI-powered dev team. In your editor and beyond. +

+ The AI dev team that gets things done.

-

- Roo's model-agnostic, specialized modes and fine-grained auto-approval controls - give you the tools (and the confidence) to get AI working for you. +

+ Roo's specialized modes stay on task and ship great code. Open source and works + with any model.

@@ -44,7 +45,7 @@ export default async function Home() { href="https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline" target="_blank" className="flex w-full items-center justify-center"> - Install Extension + Install VS Code Extension @@ -56,11 +57,12 @@ export default async function Home() { href={EXTERNAL_LINKS.CLOUD_APP_SIGNUP} target="_blank" className="flex w-full items-center justify-center"> - Get started with Cloud + Try Cloud
+
diff --git a/apps/web-roo-code/src/components/homepage/company-logos.tsx b/apps/web-roo-code/src/components/homepage/company-logos.tsx index cedc681759..a27e8bbc16 100644 --- a/apps/web-roo-code/src/components/homepage/company-logos.tsx +++ b/apps/web-roo-code/src/components/homepage/company-logos.tsx @@ -1,36 +1,33 @@ "use client" import { motion } from "framer-motion" +import Image from "next/image" -export function CompanyLogos() { - const logos = [ - { name: "Company 1", logo: "/placeholder.svg?height=40&width=120" }, - { name: "Company 2", logo: "/placeholder.svg?height=40&width=120" }, - { name: "Company 3", logo: "/placeholder.svg?height=40&width=120" }, - { name: "Company 4", logo: "/placeholder.svg?height=40&width=120" }, - { name: "Company 5", logo: "/placeholder.svg?height=40&width=120" }, - { name: "Company 6", logo: "/placeholder.svg?height=40&width=120" }, - ] +const logos = ["Apple", "Netflix", "Microsoft", "Amazon", "ByteDance", "Rakuten", "Carvana"] +export function CompanyLogos() { return ( -
-
- {logos.map((company, index) => ( +
+ + Making devs more productive at + +
+ {logos.map((logo, index) => ( - {/* eslint-disable @next/next/no-img-element */} - {company.name} + {`${logo} ))} diff --git a/apps/web-roo-code/src/components/homepage/features.tsx b/apps/web-roo-code/src/components/homepage/features.tsx index a0415c04f7..d90834c00a 100644 --- a/apps/web-roo-code/src/components/homepage/features.tsx +++ b/apps/web-roo-code/src/components/homepage/features.tsx @@ -1,48 +1,52 @@ "use client" import { motion } from "framer-motion" -import { Brain, Shield, Users2, ReplaceAll, Keyboard, LucideIcon, CheckCheck } from "lucide-react" +import { Shield, Users2, ReplaceAll, Keyboard, LucideIcon, CheckCheck, GitPullRequest } from "lucide-react" +import Image from "next/image" export interface Feature { icon: LucideIcon title: string description: string + logos?: string[] } export const features: Feature[] = [ { icon: Users2, - title: "Specialized Modes", + title: "Specialized modes", description: - "Planning, Architecture, Debugging and beyond: Roo's modes stay on-task and deliver. Create your own modes or download from the marketplace.", + "Planning, Architecture, Debugging and beyond: Roo's modes stay on-task and deliver. They even know when to hand off work to other modes. Create your own or download from the marketplace.", }, { icon: ReplaceAll, - title: "Model-Agnostic", - description: "Bring your own model key or use local inference — no markup, lock-in, no restrictions.", + title: "Model-agnostic", + description: "Bring your own provider key or even run local inference — no markup, lock-in, no restrictions.", + logos: ["Anthropic", "OpenAI", "Gemini", "Grok", "Qwen", "Kimi", "Mistral", "Ollama"], }, { icon: CheckCheck, title: "Granular auto-approval", - description: "Control each action and make Roo as autonomous as you want as you build confidence. Or go YOLO.", + description: + "Control each action and make Roo as autonomous as you want as you build confidence. Or go YOLO and let it rip.", }, { - icon: Keyboard, - title: "Highly Customizable", + icon: GitPullRequest, + title: "Proudly open source", description: - "Fine-tune settings for Roo to work for you, like inference context, model properties, slash commands and more.", + "Community-driven and fully auditable: no throttling or surprises about what's happening behind the scenes.", }, { - icon: Brain, - title: "Deep Project-wide Context", + icon: Keyboard, + title: "Highly customizable", description: - "Roo Code reads your entire codebase, preserving valid code through diff-based edits for seamless multi-file refactors.", + "Fine-tune settings for Roo to work for you, like inference context, model properties, slash commands and more.", }, { icon: Shield, - title: "Secure and Private by Design", + title: "Secure and private by design", description: - "Open source and local-first. No code leaves your machine unless you say so. SOC 2 Type II compliant.", + "Client-only architecture means no code leaves your machine unless you say so. SOC 2 Type II compliant.", }, ] @@ -108,7 +112,7 @@ export function Features() { initial="hidden" whileInView="visible" viewport={{ once: true }}> -
    +
      {features.map((feature, index) => { const Icon = feature.icon return ( @@ -120,6 +124,20 @@ export function Features() {

      {feature.description}

      + {feature.logos && ( +
      + {feature.logos.map((logo) => ( + {`${logo} + ))} +
      + )} ) })} diff --git a/apps/web-roo-code/src/components/homepage/install-section.tsx b/apps/web-roo-code/src/components/homepage/install-section.tsx index 96404b4796..79e2fbe857 100644 --- a/apps/web-roo-code/src/components/homepage/install-section.tsx +++ b/apps/web-roo-code/src/components/homepage/install-section.tsx @@ -50,7 +50,8 @@ export function InstallSection({ downloads }: InstallSectionProps) { Install Roo Code now

      - Install from the VSCode Marketplace or the CLI in minutes, then bring your own AI model. + Install from the VS Code Marketplace or the CLI in minutes, then bring your own AI + model.
      Roo Code is also compatible with all VSCode forks.

      @@ -62,13 +63,15 @@ export function InstallSection({ downloads }: InstallSectionProps) { target="_blank" className="group relative inline-flex w-full items-center justify-center gap-3 rounded-xl bg-gradient-to-r from-blue-600 to-cyan-600 px-6 py-4 text-lg font-medium text-white shadow-lg transition-all duration-300 hover:from-blue-700 hover:to-cyan-700 hover:shadow-xl hover:shadow-blue-500/25 dark:from-blue-500 dark:to-cyan-500 dark:hover:from-blue-600 dark:hover:to-cyan-600 sm:w-auto sm:px-8 sm:text-xl">
      -
      - - - From VSCode Marketplace +
      + + + From VS Code Marketplace {downloads !== null && ( <> - · + + · + {downloads} Downloads )}