Configuration
One file controls your entire app — branding, theming, pricing, auth, and more.
Open src/config.ts and work through each section. You can rebrand and reconfigure everything without touching any component code.
App identity
appName: "Your App",
appDescription: "A one-sentence description of what your app does.",
domainName: "yourapp.com",appName— appears in the logo, page titles, email subjects, and SEO meta tags.appDescription— the default meta description used on every page.domainName— used to build canonical URLs and sitemap entries.
Logo
logoUrl: "/logo.png", // file in /public — set to "" to use text only
showWordmark: true, // show app name next to logo markReplace /public/logo.png with your own logo. A transparent PNG works best. Set logoUrl to an empty string to show only the text wordmark.
TipTo show your icon in the browser tab, add a
favicon.svg file to the/public folder. SVG favicons are supported in all modern browsers and scale perfectly at any size — no need to generate multiple PNG sizes.Theming
theme: "light", // default on first visit
lightTheme: "light", // DaisyUI theme name for light mode
darkTheme: "dark", // DaisyUI theme name for dark mode
enableThemeToggle: true, // show the toggle in the headerAny DaisyUI theme name works.
Hero section
hero: {
showcase: {
kicker: "Next.js SaaS Boilerplate — Ship faster",
title: "Ship your SaaS faster",
titleHighlight: "with everything already built in",
description: "A short sentence below the heading.",
primaryCtaPlanName: "Advanced", // must match a plan name exactly
imageSrc: "/features/hero.png", // null → shows animated mockup card
imageAlt: "Product screenshot",
}
},Pricing cards
pricing: {
cards: [
{
planName: "Starter", // must match stripe.plans[n].name
tagline: "For side projects",
oldPrice: 149, // strikethrough — omit to hide
newPrice: 99,
features: ["Auth", "Payments", "Database"],
},
{
planName: "Advanced",
tagline: "Everything you need",
oldPrice: 299,
newPrice: 199,
features: ["Everything in Starter", "Priority support"],
highlight: true, // adds "Most popular" badge
},
]
}Auth settings
auth: {
loginUrl: "/signin",
callbackUrl: "/dashboard",
dashboardUrl: "/dashboard",
purchaseSuccessUrl: "/success",
}Mail settings
mail: {
supportEmail: "support@yourdomain.com",
fromAdmin: "Your App <hello@yourdomain.com>",
replyTo: "support@yourdomain.com",
}WarningThe domain in
fromAdmin must be verified in your Resend account, otherwise emails will be rejected by the provider.Social links
social: {
twitter: "https://twitter.com/yourhandle",
linkedin: "https://linkedin.com/in/yourhandle",
github: "https://github.com/yourhandle",
youtube: "", // empty strings are hidden automatically in the footer
}Announcement bar
announcementBar: {
show: true,
text: "🚀 Your App v1 is live —",
ctaText: "get it now",
ctaHref: "/#pricing",
},Set show: false to hide the bar across the entire site instantly.