"use client"; import React, { useState, useEffect } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { Button } from "@katanemo/ui"; import Link from "next/link"; const carouselData = [ { id: 1, category: "LAUNCH FASTER", title: "Focus on core objectives", description: "Building agents is hard enough. The plumbing work shouldn't be. Plano handles routing, observability, and policy hooks as an AI-native sidecar—so you can focus on your agent's core product logic and ship to production faster.", image: "/LaunchFaster.svg", link: "https://docs.planoai.dev/get_started/quickstart", }, { id: 2, category: "BUILD WITH CHOICE", title: "Rapidly incorporate LLMs", description: "Build with multiple LLMs or model versions with a single unified API. Plano centralizes access controls, offers resiliency for traffic to 100+ LLMs -- all without you having to write a single line of code. Use existing libraries and proxy traffic through Plano.", image: "/BuildWithChoice.svg", link: "https://docs.planoai.dev/concepts/llm_providers/llm_providers", }, { id: 3, category: "RICH LEARNING SIGNALS", title: "Hyper-rich agent traces and logs", description: "Knowing when agents fail or delight users is a critical signal that feeds into the reinforcement learning and optimization cycle. Plano makes this trivial by sampling hyper-rich information traces from live production agentic interactions so that you can improve agent performance faster.", image: "/Telemetry.svg", link: "https://docs.planoai.dev/guides/observability/observability.html", }, { id: 4, category: "SHIP CONFIDENTLY", title: "Centrally apply guardrail policies", description: "Plano comes built-in with a state-of-the-art guardrail model you can use for things like jailbreak detection. But you can easily extend those capabilities via plano's agent filter chain to apply custom policy checks in a centralized way and keep users engaged on topics relevant to your requirements.", image: "/ShipConfidently.svg", link: "https://docs.planoai.dev/guides/prompt_guard.html", }, { id: 5, category: "SCALABLE ARCHITECTURE", title: "Protocol-Native Infrastructure", description: "Plano's sidecar deployment model avoids library-based abstractions - operating as a protocol-native data plane that integrates seamlessly with your existing agents via agentic APIs (like v1/responses). This decouples your core agent logic from plumbing concerns - run it alongside any framework without code changes, vendor lock-in, or performance overhead.", image: "/Contextual.svg", link: "https://docs.planoai.dev/concepts/tech_overview/tech_overview.html", }, ]; export function IdeaToAgentSection() { const [currentSlide, setCurrentSlide] = useState(0); const [isAutoPlaying, setIsAutoPlaying] = useState(true); // Auto-advance slides useEffect(() => { if (!isAutoPlaying) return; const interval = setInterval(() => { setCurrentSlide((prev) => (prev + 1) % carouselData.length); }, 10000); // 10 seconds per slide return () => clearInterval(interval); }, [isAutoPlaying]); const handleSlideClick = (index: number) => { setCurrentSlide(index); setIsAutoPlaying(false); // Resume auto-play after 10 seconds setTimeout(() => setIsAutoPlaying(true), 10000); }; return (
{/* Main Heading */}

Idea to agent — without overhead

{/* Progress Indicators */}
{carouselData.map((_, index) => ( ))}
{/* Carousel Content - Fixed height to prevent layout shift */}
{/* Left Content */}
{/* Category */}

{carouselData[currentSlide].category}

{/* Title */}

{carouselData[currentSlide].title}

{/* Description */}

{carouselData[currentSlide].description}

{/* Image - Show below on mobile, right side on desktop */} {carouselData[currentSlide].image && (
{carouselData[currentSlide].category}
)} {/* Right Image - Desktop only */} {carouselData[currentSlide].image && (
{carouselData[currentSlide].category}
)}
); }