Customization
Last updated on 2026-02-25
The SaaS Starter Kit is designed to be customized for your product. All components use design tokens and Tailwind CSS utilities, making brand adaptation straightforward.
Changing Colors
Update CSS custom properties in app/globals.css:
:root {
--primary: 220 90% 56%;
--primary-foreground: 0 0% 100%;
--accent: 150 60% 45%;
--accent-foreground: 0 0% 100%;
}
All 135+ components automatically inherit the new colors.
Changing Typography
Configure fonts in app/layout.tsx:
import { Inter } from "next/font/google";
const inter = Inter({ subsets: ["latin"] });
Swap Inter for any Google Font or local font file.
Customizing Auth Flows
Adding Your Backend
Each auth recipe includes // TODO comments. Replace them with your API calls:
const onSubmit = async (data: LoginFormData) => {
// Replace with your auth provider
const result = await signIn("credentials", {
email: data.email,
password: data.password,
});
};
Changing Social Providers
Edit the login form to add or remove social login buttons:
// In components/ui/recipes/authentication/login-form.tsx
// Add or remove social provider buttons as needed
Customizing Form Validation
Validation schemas use Zod. Modify the schema to match your requirements:
const loginSchema = z.object({
email: z.string().email("Enter a valid email"),
password: z.string().min(8, "Password must be at least 8 characters"),
});
Extending Components
Use the cn() utility to add custom classes:
import { Button } from "@/components/ui/primitives/button";
<Button className="rounded-full shadow-lg" variant="primary">
Custom Button
</Button>
Adding Component Variants
Components use class-variance-authority:
const buttonVariants = cva("...", {
variants: {
variant: {
primary: "...",
brand: "bg-brand-500 text-white hover:bg-brand-600",
},
},
});
Adding New Settings Pages
Follow the existing pattern in recipes/settings/:
- Create a new component in
components/ui/recipes/settings/ - Add a demo page in
app/recipes/settings/your-page/ - Add a link in the settings sidebar navigation
Removing Unused Features
Delete component directories you don't need:
- Don't need voice input? Delete
components/ui/recipes/voice/ - Don't need team management? Delete
components/ui/recipes/teams/ - Run
npm run buildto verify no broken imports
Using shadcn/ui CLI
Add new components alongside the kit:
npx shadcn@latest add <component-name>
The components.json is configured for the new-york style with Lucide icons.