'use client' // End of third-party imports import { isFeatureEnabled, useBreakpoint } from 'common' import { ChevronRight, Play, Sparkles } from 'lucide-react' import { useTheme } from 'next-themes' import Link from 'next/link' import { cn, IconBackground } from 'ui' import { IconPanel } from 'ui-patterns/IconPanel' import { getCustomContent } from '../lib/custom-content/getCustomContent' import DocsCoverLogo from './DocsCoverLogo' const { sdkDart: sdkDartEnabled, sdkKotlin: sdkKotlinEnabled, sdkSwift: sdkSwiftEnabled, } = isFeatureEnabled(['sdk:dart', 'sdk:kotlin', 'sdk:swift']) function AiPrompt({ className }: { className?: string }) { return ( Start with Supabase AI prompts ) } const HomePageCover = (props) => { const isXs = useBreakpoint(639) const iconSize = isXs ? 'sm' : 'lg' const { homepageHeading } = getCustomContent(['homepage:heading']) const { resolvedTheme } = useTheme() const isLightMode = !resolvedTheme?.includes('dark') const frameworks = [ { tooltip: 'ReactJS', icon: '/docs/img/icons/react-icon', href: '/guides/getting-started/quickstarts/reactjs', hasLightIcon: false, }, { tooltip: 'Next.js', icon: '/docs/img/icons/nextjs-icon', href: '/guides/getting-started/quickstarts/nextjs', hasLightIcon: false, }, { tooltip: 'TanStack Start', icon: '/docs/img/icons/tanstack-icon', href: '/guides/getting-started/quickstarts/tanstack', hasLightIcon: true, }, { tooltip: 'Astro.js', icon: '/docs/img/icons/astro-icon', href: '/guides/getting-started/quickstarts/astrojs', hasLightIcon: true, }, { tooltip: 'Vue', icon: '/docs/img/icons/vuejs-icon', href: '/guides/getting-started/quickstarts/vue', hasLightIcon: false, }, { tooltip: 'Nuxt', icon: '/docs/img/icons/nuxt-icon', href: '/guides/getting-started/quickstarts/nuxtjs', hasLightIcon: false, }, { tooltip: 'iOS Swift', icon: '/docs/img/icons/swift-icon-orange', href: '/guides/getting-started/quickstarts/ios-swiftui', enabled: sdkSwiftEnabled, hasLightIcon: false, }, { tooltip: 'Android Kotlin', icon: '/docs/img/icons/kotlin-icon', href: '/guides/getting-started/quickstarts/kotlin', enabled: sdkKotlinEnabled, hasLightIcon: false, }, { tooltip: 'Expo React Native', icon: '/docs/img/icons/expo-icon', href: '/guides/getting-started/quickstarts/expo-react-native', hasLightIcon: true, }, { tooltip: 'Flutter', icon: '/docs/img/icons/flutter-icon', href: '/guides/getting-started/quickstarts/flutter', enabled: sdkDartEnabled, hasLightIcon: false, }, { tooltip: 'Python', icon: '/docs/img/icons/python-icon', href: '/guides/getting-started/quickstarts/flask', hasLightIcon: false, }, ] const GettingStarted = () => (

Getting Started

Set up and connect a database in just a few minutes.

{frameworks .filter((framework) => framework.enabled !== false) .map((framework, i) => { const iconToUse = framework.hasLightIcon && isLightMode ? `${framework.icon}-light` : framework.icon return ( ) })}
) return (
{isFeatureEnabled('docs:full_getting_started') && (
)}
) } export default HomePageCover