diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 00000000..3f582e9a
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,7 @@
+{
+ "permissions": {
+ "allow": [
+ "Bash(npx tsc:*)"
+ ]
+ }
+}
diff --git a/apps/frontpage/components/home/ai/ai.tsx b/apps/frontpage/components/home/ai/ai.tsx
new file mode 100644
index 00000000..54789fb1
--- /dev/null
+++ b/apps/frontpage/components/home/ai/ai.tsx
@@ -0,0 +1,86 @@
+'use client';
+
+import type { FC } from 'react';
+import Link from 'next/link';
+import { Container } from '@repo/ui';
+import { IllustratedFeatureList } from '../illustrated-feature-list';
+import { Testimonial } from '../testimonial';
+import { DocumentAlt, LinkIcon, Runtest } from './icons';
+import { LogoKickstart } from './logo-kickstart';
+
+const features = [
+ {
+ icon: ,
+ title: 'Curated context, better output',
+ description:
+ 'The MCP compiles info about your components—APIs, stories, usage patterns & tests—into an optimized payload for agents.',
+ link: {
+ label: 'Learn about component manifest',
+ href: '/docs/component-manifest',
+ },
+ // TODO: Add video/poster assets for curated context feature
+ media: '/home/test/homepage-spot-testing-lg.mp4',
+ poster: '/home/test/homepage-spot-testing-poster-lg.jpg',
+ },
+ {
+ icon: ,
+ title: 'Self-healing through tests',
+ description:
+ 'Agents run your interaction and accessibility tests, see what fails, and fix their own bugs. You only need to step in after the tests pass.',
+ link: {
+ label: 'Learn about self-healing loop',
+ href: '/docs/writing-tests',
+ },
+ // TODO: Add video/poster assets for self-healing feature
+ media: '/home/test/homepage-spot-testing-lg.mp4',
+ poster: '/home/test/homepage-spot-testing-poster-lg.jpg',
+ },
+ {
+ icon: ,
+ title: 'Share across your organization',
+ description:
+ 'Publish your MCP to ensure that it is accessible to your entire team and their coding agents.',
+ link: {
+ label: 'Learn about published MCP',
+ href: 'https://www.chromatic.com/docs/mcp',
+ },
+ // TODO: Add video/poster assets for organization sharing feature
+ media: '/home/test/homepage-spot-testing-lg.mp4',
+ poster: '/home/test/homepage-spot-testing-poster-lg.jpg',
+ },
+];
+
+export const AI: FC = () => {
+ return (
+
+ {features.map((feature) => (
+
+ ))}
+
+
+ Build with AI agents
+
+
+
+ Stories give agents the context they need—APIs, usage patterns, and
+ tests. Storybook MCP serves this knowledge so agents generate higher
+ quality code.
+
+
+
+
+ }
+ name="Jonas Ulrich"
+ text="“Even without much custom tuning, Storybook MCP generates really some impressive results for us!”"
+ />
+
+ );
+};
diff --git a/apps/frontpage/components/home/ai/icons/document-alt.tsx b/apps/frontpage/components/home/ai/icons/document-alt.tsx
new file mode 100644
index 00000000..cc22be17
--- /dev/null
+++ b/apps/frontpage/components/home/ai/icons/document-alt.tsx
@@ -0,0 +1,35 @@
+import * as React from 'react';
+import { SVGProps } from 'react';
+
+interface SVGRProps {
+ title?: string;
+ titleId?: string;
+}
+
+export const DocumentAlt = ({
+ title,
+ titleId,
+ ...props
+}: SVGProps & SVGRProps) => (
+
+);
diff --git a/apps/frontpage/components/home/ai/icons/index.ts b/apps/frontpage/components/home/ai/icons/index.ts
new file mode 100644
index 00000000..b23a3e12
--- /dev/null
+++ b/apps/frontpage/components/home/ai/icons/index.ts
@@ -0,0 +1,3 @@
+export { DocumentAlt } from './document-alt';
+export { Link as LinkIcon } from './link';
+export { Runtest } from './runtest';
diff --git a/apps/frontpage/components/home/ai/icons/link.tsx b/apps/frontpage/components/home/ai/icons/link.tsx
new file mode 100644
index 00000000..c03e768c
--- /dev/null
+++ b/apps/frontpage/components/home/ai/icons/link.tsx
@@ -0,0 +1,33 @@
+import * as React from 'react';
+import type { SVGProps } from 'react';
+
+interface SVGRProps {
+ title?: string;
+ titleId?: string;
+}
+
+export const Link = ({
+ title,
+ titleId,
+ ...props
+}: SVGProps & SVGRProps) => (
+
+);
diff --git a/apps/frontpage/components/home/ai/icons/runtest.tsx b/apps/frontpage/components/home/ai/icons/runtest.tsx
new file mode 100644
index 00000000..04b4256e
--- /dev/null
+++ b/apps/frontpage/components/home/ai/icons/runtest.tsx
@@ -0,0 +1,34 @@
+import * as React from 'react';
+import type { SVGProps } from 'react';
+
+interface SVGRProps {
+ title?: string;
+ titleId?: string;
+}
+
+export const Runtest = ({
+ title,
+ titleId,
+ ...props
+}: SVGProps & SVGRProps) => (
+
+);
diff --git a/apps/frontpage/components/home/ai/logo-kickstart.tsx b/apps/frontpage/components/home/ai/logo-kickstart.tsx
new file mode 100644
index 00000000..bd72a38f
--- /dev/null
+++ b/apps/frontpage/components/home/ai/logo-kickstart.tsx
@@ -0,0 +1,51 @@
+import React from 'react';
+
+export const LogoKickstart = (props) => (
+
+);
diff --git a/apps/frontpage/components/home/develop/develop.tsx b/apps/frontpage/components/home/develop/develop.tsx
index ab22924d..483eaa3e 100644
--- a/apps/frontpage/components/home/develop/develop.tsx
+++ b/apps/frontpage/components/home/develop/develop.tsx
@@ -59,7 +59,8 @@ export function Develop() {
Storybook provides a workshop to build UIs in isolation. It helps
you develop hard-to-reach states and edge cases without needing to
- run the whole app.
+ run the whole app. The same context that helps your team also equips
+ AI agents to generate code that matches your patterns.
Storybook brings together UI, examples, and documentation in one
- place. That helps your team adopt existing UI patterns.
+ place. That helps your team and AI agents adopt existing UI
+ patterns.
diff --git a/apps/frontpage/components/home/document/icons/document.tsx b/apps/frontpage/components/home/document/icons/document.tsx
index 92bbc870..c4c05c70 100644
--- a/apps/frontpage/components/home/document/icons/document.tsx
+++ b/apps/frontpage/components/home/document/icons/document.tsx
@@ -1,5 +1,5 @@
-import * as React from "react";
-import type { SVGProps } from "react";
+import * as React from 'react';
+import type { SVGProps } from 'react';
interface SVGRProps {
title?: string;
@@ -11,78 +11,78 @@ export function Document({
titleId,
...props
}: SVGProps & SVGRProps) {
- return
+ return (
+
+ );
}
diff --git a/apps/frontpage/components/home/home.tsx b/apps/frontpage/components/home/home.tsx
index 17f7409d..e2083a2d 100644
--- a/apps/frontpage/components/home/home.tsx
+++ b/apps/frontpage/components/home/home.tsx
@@ -8,6 +8,7 @@ import { Develop } from './develop/develop';
import { StickyNav } from './sticky-nav/sticky-nav';
import { Test } from './test/test';
import { Document } from './document/document';
+import { AI } from './ai/ai';
import { Share } from './share/share';
import { Automate } from './automate/automate';
import { SocialValidation } from './social-validation/social-validation';
@@ -34,6 +35,9 @@ export function Home({
const documentRef = useRef(null);
const documentInView = useInView(documentRef);
+ const aiRef = useRef(null);
+ const aiInView = useInView(aiRef);
+
const shareRef = useRef(null);
const shareInView = useInView(shareRef);
@@ -47,6 +51,7 @@ export function Home({
if (whoInView) return 'who';
if (automateInView) return 'automate';
if (shareInView) return 'share';
+ if (aiInView) return 'ai';
if (documentInView) return 'document';
if (testInView) return 'test';
if (developInView) return 'develop';
@@ -55,6 +60,7 @@ export function Home({
developInView,
testInView,
documentInView,
+ aiInView,
shareInView,
automateInView,
whoInView,
@@ -82,6 +88,9 @@ export function Home({
+
+
+
diff --git a/apps/frontpage/components/home/illustrated-feature-list.tsx b/apps/frontpage/components/home/illustrated-feature-list.tsx
index 8ea8d361..6d9d5c3d 100644
--- a/apps/frontpage/components/home/illustrated-feature-list.tsx
+++ b/apps/frontpage/components/home/illustrated-feature-list.tsx
@@ -59,23 +59,23 @@ export const IllustratedFeatureList: FC = ({
return (
{/* Desktop video */}
= ({
variants={variants}
>
= ({
@@ -121,7 +121,7 @@ export const IllustratedFeatureList: FC = ({