import Examples from 'data/Examples' import Link from 'next/link' import { cn } from 'ui' const EXAMPLE_LOGO: Record = { 'Stripe Subscriptions Starter': { src: '/images/logos/frameworks/stripe.svg' }, 'Next.js Starter': { src: '/images/logos/frameworks/nextjs.svg', invert: true }, 'AI Chatbot': { src: '/images/logos/frameworks/openai.svg', invert: true }, 'LangChain + Next.js Starter': { src: '/images/logos/frameworks/langchain.svg' }, 'Flutter User Management': { src: '/images/logos/frameworks/flutter.svg' }, 'Expo React Native Starter': { src: '/images/logos/frameworks/expo.svg', invert: true }, } function SkeletonBar({ className }: { className?: string }) { return
} function StripeSkeleton() { return (
) } function NextjsSkeleton() { return (
{/* Sidebar */}
{/* Main */}
{/* 3x4 data grid */}
{Array.from({ length: 12 }).map((_, i) => (
))}
) } const SKELETON_CONTENT: Record React.JSX.Element> = { 'Stripe Subscriptions Starter': StripeSkeleton, 'Next.js Starter': NextjsSkeleton, } export function BuiltWithSupabaseSection() { const featuredExamples = Examples.slice(0, 2) const gridExamples = Examples.slice(2, 6) return (
{/* Header row */}

Kickstart your next project
with production ready templates

View all examples
{/* Featured row - 2 large cells */}
{featuredExamples.map((example) => { const logo = EXAMPLE_LOGO[example.title] const Skeleton = SKELETON_CONTENT[example.title] return (
{logo && ( )}

{example.title}

{example.description}

{/* Browser frame */}
{/* Title bar */}
{/* Skeleton content */}
{Skeleton ? : null}
) })}
{/* Grid row - 4 smaller cells */}
{gridExamples.map((example) => { const logo = EXAMPLE_LOGO[example.title] return (
{logo && ( )}

{example.title}

{example.description}

) })}
) }