Template

Project structure

A map of the codebase — where routes, components, content, and config live.

The app follows the Next.js App Router layout, with a few conventions worth knowing before you start adding features.

Directory layout

src/
  app/        App Router routes — [locale]/(marketing) for public pages,
              [locale]/docs for the fumadocs shell, and the metadata routes
  components/ Shared, app-local components (mdx + json-ld helpers)
  features/   Feature modules (e.g. blog, legal) — components + types together
  lib/        i18n, metadata, and the fumadocs source loaders
  env.ts      Validated environment schema
content/      MDX for docs, blog, legal, and authors
public/       Static assets (including the committed cover/avatar images)

Routing

All pages live under src/app/[locale] so they are locale-aware and statically generated. The marketing surfaces (home, blog, legal, authors) share a layout in the (marketing) route group; the docs section brings its own fumadocs shell.

Content

Docs, blog posts, legal pages, and authors are MDX files under content/, loaded through fumadocs. Add a file, and it shows up — no registration step:

content/blog/my-post.mdx   →   /blog/my-post
content/docs/my-page.mdx   →   /docs/my-page

Internationalization & SEO

Locale routing, canonical URLs, and the hreflang/JSON-LD wiring are already in place — see the Guides for how they fit together.

On this page