Skip to main content
NextStarter
Menu

Customization

Rebrand the starter and replace its example content: name, colours, navigation, landing page, and components.

Name and description

The site name and default description come from NEXT_PUBLIC_SITE_NAME and NEXT_PUBLIC_SITE_META_DESCRIPTION. Change them in .env and they update in the header, the footer, the page titles (through the %s | Site Name template), and the metadata. The rest of the site-wide metadata, including keywords, Open Graph, and Twitter cards, is in src/app/layout.tsx. The JSON-LD structured data is in src/lib/schema.ts.

Colours and theme

The theme is defined in src/app/globals.css with Tailwind CSS v4’s @theme block. It holds a stone neutral ramp, an orange accent ramp, and the semantic tokens shadcn/ui reads, such as --color-primary and --color-destructive. The .dark block below it overrides the semantic tokens for dark mode. There is no tailwind.config.js to edit for colours.

To rebrand, replace the orange ramp with your accent colour and keep the step names. Every component then picks up the change. The colour foundations on the components page show every ramp and token as it renders now.

Light and dark mode are handled by next-themes. The default follows the visitor’s system setting, and the toggle in the header overrides it. The provider is configured in src/app/layout.tsx.

The landing page

In the full starting point, the home page is assembled in src/components/landing-page/index.tsx from one component per section: hero, about, tech stack, features, and getting started. Reorder, edit, or delete them there. Each section’s id is what the # links in the header and footer scroll to, so update those if you rename or remove one.

In the blank starting point, the home page is just src/app/page.tsx.

Components

UI components live in src/components/ui. They are shadcn/ui components (Button, Card, Carousel, and Tooltip) built on Radix primitives. Add more with the shadcn CLI, which reads components.json to put them in the right place:

npx shadcn@latest add dialog

Dialog is one example. The shadcn/ui component directory lists everything else you can add the same way, including accordions, forms, tabs, data tables, and menus. Each entry has a live preview and the exact add command.

The components page shows every variant, size, and state with the code for each. It imports the real components, so it cannot drift from what ships. To list a new component there, add an entry to src/components/ui-components/sections.ts and a matching section component.

Example content to replace

src/app/privacy/page.tsx
The privacy notice. It reads your analytics configuration, so it describes what the site actually does, but review it against your own site before launch. Bump the LAST_UPDATED constant whenever its substance changes.
src/lib/changelog.ts
The entries behind /whats-new, if you cloned the repository by hand. Empty both arrays and the route disappears, along with its navigation entries and sitemap listing. Add your first entry and it comes back. Projects created with the CLI have this removed already.
/docs
These docs, in the full starting point. To remove them, delete src/app/docs, src/components/docs, src/lib/docs.ts, and tests/docs-pages.spec.ts. Then remove the /docs entries from the footer quick links, the sitemap, and the landing page’s Getting Started section.