Config Files
The template uses a small set of config and content files as the main customization surface.
This page is the practical file-by-file reference.
Reference vs overview
Use this page when you already know you need to change config and want the quickest file-level map. For the conceptual overview, see Config System.
What this reference covers
Brand configuration
Files that define identity, metadata, contact details, and shared asset paths.
Content configuration
JSON files that control marketing content and legal pages, validated by Zod schemas.
i18n labels
Per-locale message files that provide UI labels for auth, dashboard, navbar, and system strings.
Environment defaults
Environment variables that capture assumptions about auth providers, billing modes, and email behavior.
src/config/site.ts
Use for product identity and metadata.
Controls:
- site name
- site description
- contact email
- Resend sender
- logo paths
- error image paths
content/landing/*.json
Use for public-facing landing content and structure. One file per locale (en.json, es.json, cn.json), validated by Zod schemas in src/content/schemas.ts and loaded by src/content/loaders.ts.
Controls:
- hero
- documentation section
- testimonials
- FAQ
- pricing
- CTA
- footer
content/legal/*.json
Use for legal page content per locale.
Controls:
- terms of service
- privacy policy
messages/<locale>/*.json
Use for i18n UI labels. Each locale directory contains separate JSON files.
Controls:
system.json— global UI stringsnavbar.json— navigation labelsdashboard.json— dashboard section labels and sidebar copyauth.json— authentication flow copy
src/env.js
Use for environment-driven integration defaults validated with Zod.
Controls:
- auth provider assumptions
- Stripe price and coupon IDs
- email API keys (Resend)
How these files work together
The config layer is designed so that:
site.tsdefines who the product iscontent/landing/*.jsondefines how the product is presentedcontent/legal/*.jsondefines legal page contentmessages/<locale>/*.jsonprovides translated UI labelssrc/env.jsdefines which external capabilities the template expects
That separation keeps product decisions centralized instead of scattering them across routes and services.
Editing rule
When a change feels like product configuration rather than feature implementation, check the config and content files first before editing routes or services.