Skip to main content

Customization

Make KwikSaaS your own by updating branding, colors, marketing content, and theme settings.
Quick reference: See What to Customize for a clear table of what to change vs what to leave alone.

Logo & Branding

The logo component is at src/components/shared/logo.tsx. Method 1: Inline SVG (Recommended) This allows your logo to change color with themes (dark mode support).
Using fill="currentColor" makes the logo automatically adapt to light/dark themes.
Method 2: Image File For complex logos or when you need exact color matching:
Place your logo file in the public/ directory.

Favicon

Update the dynamic favicon in src/app/icon.tsx:
Or replace with a static file at public/favicon.ico.

Colors & Theme

Tailwind Colors

Primary colors are defined as CSS variables in src/app/globals.css:

Theme Toggle

Dark mode is handled by next-themes. The toggle component is in src/components/shared/theme-toggle.tsx. Theme features:
  • System preference detection — Respects OS color scheme
  • Manual toggle — Sun/moon icons in header and dashboard
  • Hydration-safe — No flash of unstyled content

Site Configuration

Central site config is in src/lib/seo/config.ts:
This config powers:
  • SEO metadata
  • Footer links
  • Social sharing
  • JSON-LD structured data

Marketing Sections

Hero Section

Edit src/app/(marketing)/sections/hero.tsx:

Features Section

Features are defined in src/config/marketing.config.ts:

Pricing Section

Pricing is driven by src/lib/payments/plans.ts:
Keep plan definitions in sync with Stripe price IDs. Mismatches cause checkout failures.

FAQ Section

Edit FAQs in src/config/marketing.config.ts:

Social Proof / Testimonials

Testimonials are in the marketing sections. Update src/app/(marketing)/sections/social-proof.tsx:

Header Navigation

Edit src/components/shared/header.tsx:
Edit src/components/shared/footer.tsx:

Dashboard Sidebar

Edit navigation in src/components/dashboard/app-sidebar.tsx:

Active State

Use usePathname() to highlight active nav items:

Content (MDX)

Blog Posts

Create posts in src/content/blog/:

Changelog

Create entries in src/content/changelog/:
Edit legal content in src/content/legal/:
  • privacy.mdx
  • terms-of-service.mdx
  • cookie-policy.mdx

SEO & Open Graph

Page Metadata

Use the metadata helper for new pages:

Dynamic OG Images

OG images are generated at:
  • /api/og — Site-wide OG image
  • /api/og/blog — Blog post OG images
Customize in src/app/api/og/route.tsx.

Quick Customization Checklist

1

Update site config

Edit src/lib/seo/config.ts with your brand name, URL, and social links.
2

Replace logo

Update src/components/shared/logo.tsx with your logo SVG or image.
3

Set colors

Modify CSS variables in src/app/globals.css for your brand colors.
4

Update marketing content

Edit hero, features, pricing, and FAQ in marketing sections and configs.
5

Configure Stripe

Match plan definitions in plans.ts with your Stripe products.
6

Update legal pages

Edit privacy, terms, and cookie policy in src/content/legal/.

Next Steps

Payments

Configure Stripe products and checkout

Deployment

Deploy to Vercel or your preferred host