Skip to Content
LaunchfastDocs

Configuration

Every setting in src/config.ts, the one file that names and prices your product.

siteConfig

src/config.ts
export const siteConfig = {
  name: 'Acme',
  tagline: 'Get paid on time, without chasing',
  description: 'Acme sends your invoices, follows up when they\'re late…',
  url: process.env.NEXT_PUBLIC_APP_URL ?? 'http://localhost:3000',
  supportEmail: 'support@acme.com',
  checkoutConsent: null,
};
FieldUsed for
namePage titles, emails ("Confirm your email for …"), the sign-in apps, the setup script's title. While it's "Acme", a reminder banner shows in development and setup warns before creating products
taglineHome page title and share image
descriptionSearch result snippet and share text. Keep it under about 155 characters
urlRead from NEXT_PUBLIC_APP_URL. Don't hard-code it
supportEmailLegal pages, footer, and the "taking longer than usual" payment message
checkoutConsentnull, or the text of a required checkbox before checkout. See Checkout consent

plans

An array of plans. See Plans and pricing for every field and how to change them.

type Plan = {
  slug: string;                         // permanent ID, don't change after selling
  name: string;
  description: string;
  amount: number;                       // smallest currency unit: 1900 = $19.00
  currency: string;                     // 'USD', 'INR', 'EUR'…
  interval: 'month' | 'year' | null;    // null = one-time
  features: string[];
  featured?: boolean;
  productEnv: string;                   // env var holding the Dodo product ID
};

Helpers

FunctionReturns
getPlanBySlug(slug)The plan, or undefined
getPlanByProductId(id)The plan whose productEnv holds this Dodo product ID (server only)
planProductId(plan)The plan's Dodo product ID from the environment (server only)
planPeriod(plan)"per month", "per year" or "once"

Other settings

SettingWhere
Landing page wordssrc/content/landing.ts
Brand colour, fonts, text stylessrc/app/globals.css
cacheComponents: true, partialPrefetching: falsenext.config.ts. Keep both as they are
Function regionvercel.json
Database connection for migrationsdrizzle.config.ts (reads DATABASE_URL)

On this page