// app/components/LandingPage.tsx (Server Component) import React from "react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Check } from "lucide-react"; import JoinForm from "./JoinForm"; export default function LandingPage() { return (
G4

Gruff Studio

UI playground · shadcn + Tailwind

Beta

Build faster with shadcn components

A tiny example landing page to confirm your Tailwind + shadcn setup is working. Components are unopinionated and fully customizable with Tailwind.

} title="Reusable" subtitle="Composable UI" /> } title="Accessible" subtitle="Focus & keyboard" /> } title="Themed" subtitle="Tailwind friendly" /> } title="Tiny" subtitle="Zero runtime" />
Join the waitlist Drop your email and we’ll ping you when the demo is live.

No spam — only useful updates.

Server-side friendly

Use these components in server and client components.

Tailwind-ready

Customize tokens in tailwind.config.

Example features

); } function Feature({ icon, title, subtitle }: { icon: React.ReactNode; title: string; subtitle: string }) { return (
{icon}
{title}
{subtitle}
); } function FeatureCard({ title, desc }: { title: string; desc: string }) { return (

{title}

{desc}

); }