Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ legacy-hosted/.next/
legacy-hosted/node_modules/
website/.next/
website/node_modules/
.vercel
9 changes: 9 additions & 0 deletions website/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,15 @@ pre {
transform: translateY(0);
}

/* Hide scrollbar in terminal demo */
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}
.hide-scrollbar::-webkit-scrollbar {
display: none;
}

/* Copy button toast */
.copy-toast {
animation: toast-fade 2s ease-out forwards;
Expand Down
8 changes: 4 additions & 4 deletions website/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ const jetbrainsMono = JetBrains_Mono({
});

export const metadata: Metadata = {
title: "VES AI — AI-ready product analytics CLI",
title: "VES AI — Session replay intelligence for agents",
description:
"Connect PostHog. Render session recordings. Analyze with Gemini vision. Output structured markdown your agents can act on.",
"VES AI watches every PostHog recording, finds bugs and UX friction your team missed, and writes it up automatically. Local-first CLI for AI agent workflows.",
openGraph: {
title: "VES AI — AI-ready product analytics CLI",
title: "VES AI — Session replay intelligence for agents",
description:
"Connect PostHog. Render session recordings. Analyze with Gemini vision. Output structured markdown your agents can act on.",
"VES AI watches every PostHog recording, finds bugs and UX friction your team missed, and writes it up automatically. Local-first CLI for AI agent workflows.",
type: "website",
},
icons: {
Expand Down
8 changes: 4 additions & 4 deletions website/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@ import { AgentCards } from "../components/agent-cards";
import { Footer } from "../components/footer";
import { GettingStarted } from "../components/getting-started";
import { Hero } from "../components/hero";
import { Integrations } from "../components/integrations";
import { Nav } from "../components/nav";
import { Pipeline } from "../components/pipeline";
import { TerminalShowcase } from "../components/terminal";
import { Problem } from "../components/problem";
import { Solution } from "../components/solution";

export default function Home() {
return (
<>
<Nav />
<main>
<Hero />
<Problem />
<Solution />
<Pipeline />
<TerminalShowcase />
<AgentCards />
<Integrations />
<GettingStarted />
</main>
<Footer />
Expand Down
31 changes: 15 additions & 16 deletions website/components/agent-cards.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,41 +3,40 @@ import { Section } from "./section";

const cards = [
{
title: "Machine-Readable by Default",
title: "JSON-first output",
description:
"Every data command emits JSON. Pipe output directly into your agent workflows, CI pipelines, or dashboards.",
"Every data command emits structured JSON. Pipe output directly into your agent workflows, CI pipelines, or dashboards.",
icon: Code2,
},
{
title: "Durable Workspace Artifacts",
title: "Ships with a SKILL.md",

description:
"Session, user, group, and research artifacts persist as git-friendly markdown in .vesai/workspace/ for long-lived agent context.",
icon: FolderOpen,
"A comprehensive skill file teaches Claude Code, Codex, OpenClaw, and other coding agents how to use every vesai command out of the box.",
icon: BookOpen,
},
{
title: "Local-First, Self-Hosted",
title: "Durable markdown artifacts",
description:
"Global machine config stays in ~/.vesai while project credentials and artifacts stay in each repo's .vesai directory.",
icon: Server,
"User stories, group analyses, and research answers persist as markdown in your project\u2019s .vesai/workspace/ — greppable, portable, version-controlled.",
icon: FolderOpen,
},
{
title: "Ships with a SKILL.md",
title: "Local-first, no SaaS",
description:
"A comprehensive skill file teaches Claude Code, Codex, and other coding agents how to run quickstart/init plus user, group, and research workflows out of the box.",
icon: BookOpen,
"Your PostHog keys, your GCP project, your machine. No data leaves your infrastructure. No vendor lock-in.",
icon: Server,
},
];

export function AgentCards() {
return (
<Section className="mx-auto max-w-6xl px-6 py-16 sm:py-24">
<h2 className="text-center font-bold text-3xl text-text-primary tracking-tight sm:text-4xl">
Built for AI Agents
Built for your AI agents.
<br />
<span className="text-text-secondary">Works for humans too.</span>
</h2>
<p className="mx-auto mt-4 max-w-2xl text-center text-text-secondary">
Same commands, same outputs whether you&apos;re a human or a coding
agent.
</p>

<div className="mt-12 grid gap-6 md:grid-cols-2 lg:grid-cols-4">
{cards.map((card) => (
Expand Down
Loading