// 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.
);
}
function Feature({ icon, title, subtitle }: { icon: React.ReactNode; title: string; subtitle: string }) {
return (
);
}
function FeatureCard({ title, desc }: { title: string; desc: string }) {
return (
{title}
{desc}
);
}