Limited offer: $250 off for the first 200 customers!Claim discount

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 mark

Replace /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 header

Any 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.