"use client"; import React, { useState, useEffect } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { Button } from "@katanemo/ui"; const carouselData = [ { id: 1, category: "LAUNCH FASTER", title: "Focus on core objectives", description: "Building AI agents is hard enough (iterate on prompts and evaluate LLMs, etc), the plumbing work shouldn't add to that complexity. Plano takes care of the critical plumbing work like routing and orchestration to agents that slows you down and locks you into rigid frameworks, freeing developers to innovate on what truly matters.", image: "/LaunchFaster.svg", }, { 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.", image: "/BuildWithChoice.svg", }, { 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 a 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", }, { 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", }, { 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", }, ]; 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}
)}
); }