diff --git a/packages/website/src/components/landing-page.tsx b/packages/website/src/components/landing-page.tsx index 248fa58675..d2d6684c93 100644 --- a/packages/website/src/components/landing-page.tsx +++ b/packages/website/src/components/landing-page.tsx @@ -1,13 +1,18 @@ import * as React from "react"; import { ArrowRight, + Blocks, Bot, BookOpen, Braces, Coffee, + Compass, ExternalLink, + Gem, GitFork, Laptop, + Lock, + Merge, Monitor, Puzzle, Smartphone, @@ -124,6 +129,7 @@ export function LandingPage({ title, subtitle }: LandingPageProps) { + @@ -875,6 +881,63 @@ function ExtensibleCard({ ); } +const PRINCIPLES: ReadonlyArray<{ icon: LucideIcon; title: string; description: string }> = [ + { + icon: Lock, + title: "Private", + description: "No telemetry, tracking, or forced login. Code stays on your machine.", + }, + { + icon: Compass, + title: "Independent", + description: "Paseo doesn't answer to investors. Its users guide what gets built.", + }, + { + icon: Gem, + title: "Polished", + description: "Install the app and start working. No need to know what a daemon is.", + }, + { + icon: Merge, + title: "Unified", + description: "Claude Code, Codex, OpenCode, Pi, and more, all used the same way.", + }, + { + icon: Blocks, + title: "Composable", + description: "Run agents on your laptop or a server, and connect from any device.", + }, + { + icon: Puzzle, + title: "Extensible", + description: "If Paseo doesn't fit how you work, change it with a plugin or fork.", + }, +]; + +function PhilosophySection() { + return ( + +
+ {PRINCIPLES.map((principle) => ( +
+
+ +
+

{principle.title}

+

{principle.description}

+
+ ))} +
+
+ ); +} + function GetStarted() { const platform = useVisitorPlatform(); return (