Radio Nemiers1.0.1

Getting started

A tour of the most-used Fumadocs MDX components. Delete or rewrite this page once the project has real content.

This page exists so the freshly-forked template has at least one non-trivial page to look at. It is also a quick reference for the Fumadocs components you'll reach for first. The full syntax reference lives in docs/markdown.md inside the repo (not published — contributor reference only).

Frontmatter

Every page starts with YAML frontmatter. The schema is defined in source.config.ts and extended in this template with an optional image field for per-page social cards.

frontmatter shape
---
title: Page title                 # required
description: One-line summary     # optional, used in <meta> + sidebar
image:                            # optional, overrides the default OG card
  url: /screenshots/feature.png   # absolute path under public/, or full URL
  alt: Feature screenshot         # optional, falls back to the page title
  width: 1200                     # optional
  height: 630                     # optional
full: true                        # optional, removes the TOC sidebar
icon: Sparkles                    # optional, lucide icon name (sidebar)
---

When image is omitted, the page falls back to NEXT_PUBLIC_OG_IMAGE (default /og-default.png). When present, it becomes the page's Open Graph and Twitter card image — the URL is absolutized against NEXT_PUBLIC_SITE_URL automatically.

The same fields also feed the page's JSON-LD output: title and description become a TechArticle for search engines and AI crawlers, the slug path becomes a BreadcrumbList. Nothing extra to author per page — it's automatic in src/app/(docs)/[[...slug]]/page.tsx.

Headings and paragraphs

Use ATX headings (# heading). Heading levels nest naturally — ## for top-level sections of a page, ### for subsections, #### when you really need it. Keep prose paragraphs short. Fumadocs styles the rest.

Callouts

An info callout. Use this for context the reader can act on but isn't required reading.

A warning callout. Use this when ignoring the note will cost the reader time.

An error callout. Reserve this for "this will break things" notes.

Code blocks

Code blocks accept a title and per-line annotations.

example.ts
type DocPage = {
  title: string;
  description?: string;
  slug: string;
};

export function buildIndex(pages: DocPage[]): string {
  return pages.map((p) => `- [${p.title}](${p.slug})`).join("\n");
}
run it
pnpm install
pnpm dev

Tables

ConcernBehaviour
AuthCookie for browsers, Authorization: Token header for clients.
Throttle300 requests / minute for authenticated users.
FormatJSON, UTF-8, no BOM.

Tabs

pnpm install

This project rejects npm via a preinstall guard. Use pnpm.

This project rejects yarn via a preinstall guard. Use pnpm.

Steps

Clone the template

git clone <template-url> my-project-docs
cd my-project-docs

Adjust branding and config

See the "Adjust on a new project" section in the repo README for the full checklist (package.json, Makefile, docker compose, public/ images, public/manifest.json).

Replace this content

Delete or rewrite the pages under content/docs/. Start with index.mdx, then add subdirectories for each section the project needs.

Cards

Where to go next

  • LLM Access — machine-readable endpoints for AI assistants.
  • Delete this page (content/docs/getting-started.mdx) once the project has real onboarding content.

On this page