Site Building
Blog site building information
site building
This project is a Next.js application using Fumadocs to host the blog/documentation pages. Below is a breakdown of the main folders and files, explaining their purpose and how they fit into the project.
Root Files
-
package.jsonProject dependencies, scripts, and metadata. -
tsconfig.jsonTypeScript configuration for path aliases and compiler options. -
next.config.mjsNext.js configuration, including MDX and image settings. -
source.config.tsFumadocs MDX source configuration and schema definitions. -
postcss.config.mjs/tailwind.config.jsTailwind CSS and PostCSS configuration. -
.eslintrc.jsonESLint configuration for code quality. -
.gitignoreFiles and folders to exclude from git.
Content
content/docs/
Markdown/MDX files for your blog and documentation.index.mdx: Main docs landing page.test.mdx: Example doc with code blocks and custom components.chat/,img/: Subfolders for organizing docs and images.
Public
public/
Static assets served at the root URL (e.g., images, favicons).images/: Contains all project, logo, and avatar images.
Source
src/
Main application source code.
App Directory
src/app/
Next.js App Router structure.(home)/: Home/landing page and layout.docs/: Fumadocs-powered documentation routes.api/search/: Search API endpoint for docs.
Components
src/components/
Reusable UI components.data-display/: Components for displaying data (e.g., project cards, testimonials).general/: General-purpose UI (buttons, typography, theme switcher).layout/: Layout primitives (container, footer, card).navigation/: Navigation components (links).sections/: Page sections (hero, about, skills, work, contact, etc.).
Hooks
src/hooks/
Custom React hooks (e.g., window size, scroll position).
Lib
src/lib/
Utilities, types, and data.data.tsx: Centralized data for projects, skills, testimonials, etc.types.ts: TypeScript types for structured data.utils.ts: Utility functions (e.g., class merging, clipboard).providers.tsx: Context providers (e.g., theme).source.ts: Fumadocs content source loader.
MDX Components
src/mdx-components.tsx
Custom MDX components mapping for Fumadocs rendering.
Other
-
README.md
Project overview and getting started instructions. -
tree.txt
Text-based directory tree for quick reference.
How Fumadocs is Used
- All documentation/blog content is written in MDX under
content/docs/. - Fumadocs is configured via
source.config.tsand integrated insrc/lib/source.ts. - The documentation routes are handled in
src/app/docs/using Fumadocs UI layouts and page components.
Explore
In the project, you can see:
lib/source.ts: Code for content source adapter,loader()provides the interface to access your content.app/layout.config.tsx: Shared options for layouts, optional but preferred to keep.
| Route | Description |
|---|---|
app/(home) | The route group for your landing page and other pages. |
app/docs | The documentation layout and pages. |
app/api/search/route.ts | The Route Handler for search. |
Fumadocs MDX
A source.config.ts config file has been included, you can customise different options like frontmatter schema.
Read the Introduction for further details.
Learn More
To learn more about Next.js and Fumadocs, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
- Fumadocs - learn about Fumadocs