Mantine NextJS + Fumadocs

Docs

Menu

Getting Started

Create your documentation site in a few minutes

Create the project

Use the Use this template button on the GitHub repository, or clone it directly:

Terminal

git clone https://github.com/gfazioli/next-app-fumadocs-template my-docs
cd my-docs

Install the dependencies

The project uses Yarn 4 (Berry). The postinstall script also generates the .source folder used by Fumadocs:

Terminal

yarn install

Start the dev server

Terminal

yarn dev

Open http://localhost:3000 — the landing page lives at / and the documentation at /docs.

Write your first page

Every .mdx file inside content/docs becomes a page. The frontmatter title is required, description is optional but recommended:

content/docs/hello.mdx

---
title: Hello World
description: My first page
---

Welcome to **my docs**!

Then add the page to the sidebar order in content/docs/meta.json:

content/docs/meta.json

{
  "pages": ["index", "hello"]
}

Make it yours

Update the site configuration in config/index.ts (metadata, GitHub repository, search language), the Mantine theme in theme.ts, and the landing page in app/page.tsx.

Project anatomy

layout.tsx
page.tsx
index.mdx
meta.json
source.config.ts
  • content/docs — your MDX content and the meta.json sidebar order
  • components/mdx — the MDX component map: every HTML tag is rendered with Mantine
  • components/docs — the docs shell: sidebar, table of contents, search dialog
  • lib/source.ts + source.config.ts — the Fumadocs content pipeline

Deploy

Two first-class options:

  • Vercel — import the repository and deploy, no configuration needed. Dynamic search API, GitHub releases proxy, the works.
  • GitHub Pages — fully static: yarn build:static produces a static export (static Orama search index included), and the bundled workflow .github/workflows/deploy-pages.yml publishes it automatically on every push to main. See the Search guide for details.