Skip to Content
LaunchfastDocs

Landing page and branding

Change the words, colours, icons and sections of your landing page.

Words

Every word on the landing page lives in src/content/landing.ts, one object per section:

KeySection
heroHeadline, sub-headline and buttons
previewThe mock product screen beside the hero, with sample data
problemThe problem your product solves
featuresThe feature grid, each with an icon
steps"How it works"
taglineThe large statement before pricing
testimonialsCustomer quotes. Empty by default: only add real ones
pricingPricing heading. The cards themselves come from plans in src/config.ts
faqQuestions and answers
signedInCtaReplaces "Start free" for people who are already signed in

The site name, tagline and description used in page titles and share previews are in siteConfig in src/config.ts.

Brand colour

The brand colour is the --primary token in src/app/globals.css. Set it in both places:

src/app/globals.css
:root, .light {
  --primary: #2563eb;
  --primary-foreground: #ffffff;
}

.dark {
  --primary: #3b82f6;
  --primary-foreground: #ffffff;
}

--primary-foreground is the text colour on top of it. Keep at least 4.5:1 contrast between the two (check with any contrast checker), or button text becomes hard to read. For a light brand colour such as yellow, use dark text.

Feature icons

Each feature has an icon name. Available: lightning, bell, chart, shield, plug, users, clock, sparkle, lock, globe, envelope, receipt.

To add one, for example a rocket from Phosphor Icons:

  1. Add "rocket" to the IconName type in src/content/landing.ts.
  2. In src/components/landing/sections.tsx, import it from @phosphor-icons/react/dist/ssr and add it to the icons map:
src/components/landing/sections.tsx
import { RocketLaunch } from '@phosphor-icons/react/dist/ssr';

const icons = {
  // …
  rocket: RocketLaunch,
};

Layout

The layout is in src/components/landing/sections.tsx. To remove a section, delete its component from src/app/page.tsx. Marketing text uses named styles from globals.css (heading-1, body-3, button-md…), so new sections match.

Always light

The landing page, blog and legal pages always use the light theme, whatever the visitor's system setting. They're wrapped in LightPage (src/components/landing/light-page.tsx). Keep new marketing pages inside it. The dashboard follows the visitor's theme.

src/app/(legal)/terms and privacy are templates. Replace every [bracketed] part with your details, including your refund policy, and have them reviewed for the countries you sell in.

The "Acme" banner

While siteConfig.name is still "Acme", a banner reminds you (in development only) to customise the site. It goes away once you change the name.

On this page