Marketing Site
The public marketing experience lives under src/app/[locale]/(home).
This area is designed so product teams can change landing content, branding, and messaging without digging into deeper backend or application logic.
Where this connects
If you want to customize the visible landing experience first, this feature works closely with First Customization and Customize Branding.
What this feature includes
Route composition
The public site is assembled inside localized route files using components from the marketing features folder.
Content-driven sections
Most visible content comes from JSON files in content/landing/, loaded through src/content/loaders.ts.
Localized copy
The marketing experience shares the same locale-first routing and message system as the rest of the app.
Main files and folders
- src/app/[locale]/(home)/page.tsx: Entry route for the landing experience.
- src/features/marketing/marketing-layout.tsx: Marketing layout wrapper.
- src/features/marketing/marketing-page.tsx: Marketing page composition.
- src/features/marketing/navbar.tsx: Marketing navbar.
- src/features/marketing/footer-section.tsx: Footer section.
- src/features/marketing/sections.tsx: Landing page sections.
- content/landing/*.json: Marketing content data.
- src/content/loaders.ts: Content loader for landing JSON files.
- src/config/site.ts: Brand-level metadata and shared product identity.
- messages/*.json: Localized marketing labels and copy.
Architecture
The landing page is built from section components in src/features/marketing/ and content-driven data.
This means:
- structure is composed using components from
src/features/marketing/ - content comes from
content/landing/*.jsonloaded viasrc/content/loaders.ts - translated copy comes from
messages/ - brand assets come from
public/andsrc/config/site.ts
This gives the project a clean separation between structure, content, and brand assets.
Current sections
The home experience includes sections such as:
- navbar
- hero
- social proof
- documentation section
- testimonials
- pricing
- FAQ
- CTA
- footer
These sections can evolve independently while still following the same component and content conventions.
Why this design works
This structure keeps marketing customizable without forcing users to edit business logic or global application code.
It also makes onboarding easier because the most visible product changes can happen through content files, assets, and messages first.
Marketing components in src/features/marketing/
All marketing-specific components live in src/features/marketing/. This includes layout wrappers, page composition, navigation, sections, and footer.
Practical rule
Keep marketing components in src/features/marketing/ and marketing content in
content/landing/*.json. Use src/config/site.ts for brand-level settings.