diff --git a/apps/web/app/(marketing)/page.tsx b/apps/web/app/(marketing)/page.tsx index 40a2894..277f267 100644 --- a/apps/web/app/(marketing)/page.tsx +++ b/apps/web/app/(marketing)/page.tsx @@ -1,3 +1,11 @@ +import { + GitHubIcon, + NotionIcon, + PostgresIcon, + RestIcon, + SalesforceCloudIcon, + StripeIcon, +} from '@/components/brand-icons'; import { HeroStepRotator } from '@/components/hero-step-rotator'; import { HeroVideo } from '@/components/hero-video'; import { JsonLd } from '@/components/json-ld'; @@ -7,6 +15,7 @@ import { ScrollCue } from '@/components/scroll-cue'; import { StaticCodeBlock } from '@/components/static-code-block'; import { FAQ, faqJsonLd } from '@/lib/seo'; import { ChevronDown } from 'lucide-react'; +import type { ComponentType } from 'react'; import Link from 'next/link'; const PROMPT_EXAMPLE = `Create an MCP server that searches our Notion workspace. @@ -32,21 +41,21 @@ const INSTALL_SNIPPET = `{ interface ExampleEntry { title: string; desc: string; - /** Single-character or short symbol shown in the brand-colored mark. */ - mark: string; - /** Brand background colour for the mark. */ + /** Brand logo component rendered inside the coloured chip. */ + Icon: ComponentType<{ size?: number; className?: string }>; + /** Official brand colour for the chip background. */ bg: string; - /** Foreground colour of the mark glyph. */ + /** Foreground colour the icon paints in. */ fg: string; } const EXAMPLES: ExampleEntry[] = [ - { title: 'Postgres', desc: 'Read-only access to your tables with schema introspection.', mark: 'P', bg: '#336791', fg: '#ffffff' }, - { title: 'Salesforce', desc: 'Query opportunities, accounts and leads from Claude.', mark: 'S', bg: '#00a1e0', fg: '#ffffff' }, - { title: 'Notion', desc: 'Search pages, read content, append blocks.', mark: 'N', bg: '#ffffff', fg: '#0a0a0b' }, - { title: 'GitHub', desc: 'List issues, search code, post comments — scoped to one repo.', mark: 'G', bg: '#181717', fg: '#ffffff' }, - { title: 'Stripe', desc: 'Look up charges, customers, refunds (read-only by default).', mark: 'S', bg: '#635bff', fg: '#ffffff' }, - { title: 'Custom REST', desc: 'Wrap any HTTP API behind one prompt-defined tool surface.', mark: '{}', bg: '#6366f1', fg: '#ffffff' }, + { title: 'PostgreSQL', desc: 'Read-only access to your tables with schema introspection.', Icon: PostgresIcon, bg: '#336791', fg: '#ffffff' }, + { title: 'Salesforce', desc: 'Query opportunities, accounts and leads from Claude.', Icon: SalesforceCloudIcon, bg: '#00a1e0', fg: '#ffffff' }, + { title: 'Notion', desc: 'Search pages, read content, append blocks.', Icon: NotionIcon, bg: '#ffffff', fg: '#0a0a0b' }, + { title: 'GitHub', desc: 'List issues, search code, post comments — scoped to one repo.', Icon: GitHubIcon, bg: '#181717', fg: '#ffffff' }, + { title: 'Stripe', desc: 'Look up charges, customers, refunds (read-only by default).', Icon: StripeIcon, bg: '#635bff', fg: '#ffffff' }, + { title: 'Custom REST',desc: 'Wrap any HTTP API behind one prompt-defined tool surface.', Icon: RestIcon, bg: '#6366f1', fg: '#ffffff' }, ]; interface ClientEntry { @@ -333,30 +342,32 @@ export default function Landing() {
+ {e.desc} +
+- {e.desc} -
-