Skip to main content

Docusaurus Introduction and Setup

Level: Beginner

ℹ️ What You'll Learn
  • Static site generators vs dynamic docs platforms
  • Docusaurus features: versioning, search, multilingual
  • Creating a Docusaurus site with npx command
  • Docusaurus project folder structure
  • docs/, sidebars.js, docusaurus.config.ts
  • Running dev server and building production
  • Deploying to GitHub Pages, Netlify, or custom servers
  • SMS documentation examples

Why This Matters

Docusaurus helps backend developers create professional documentation. You'll use it when documenting APIs, building tutorial sites, creating internal knowledge bases, or building learning platforms (like NexCoding).

What is Docusaurus?

Docusaurus = Static site generator optimized for documentation.

Build from Markdown files. Generates fast, SEO-friendly HTML sites.

Use cases:

  • API documentation
  • Tutorial platforms (like NexCoding)
  • Project docs (GitHub, npm packages)
  • Knowledge bases
  • Learning materials

Why Docusaurus (not Jekyll, Hugo, etc)?

  • Built for docs (sidebar, versioning, search)
  • MDX support (React + Markdown)
  • Fast builds and deployments
  • Good defaults out of box
  • Easy customization

How NexCoding Uses Docusaurus

NexCoding itself built with Docusaurus.

Frontend Track (you're reading this)
├── HTML articles (4 files)
├── CSS articles (2 files)
├── JavaScript articles (8 files)
├── TypeScript articles (7 files)
└── jQuery articles (4 files)

All are Markdown files → Docusaurus → This website

Each article = .mdx file. Docusaurus renders to HTML.

Installation

# Create new Docusaurus site
npx create-docusaurus@latest my-docs classic

# Navigate to project
cd my-docs

# Start development server
npm start

# Build for production
npm run build

classic template = standard docs setup with sidebar, dark mode, search.

Project Structure

my-docs/
├── docs/ # Markdown files here
│ ├── intro.md # First page
│ ├── category/
│ │ ├── _category_.json # Folder metadata
│ │ └── article.mdx # Article file
│ └── tutorial.mdx # Another article
├── docusaurus.config.ts # Site configuration
├── sidebars.ts # Sidebar structure
├── static/ # Images, files
└── package.json

Basic File Structure

---
title: "Article Title"
description: "SEO description"
sidebar_position: 1
---

# Main Heading

Content here.

## Section

More content.

Frontmatter (YAML between ---) = metadata. sidebar_position = order in sidebar.

Category Configuration

Group articles in folders using _category_.json:

{
"label": "Getting Started",
"position": 1,
"collapsed": false
}

label = sidebar label. position = folder order. collapsed = initially collapsed in sidebar.

Configuration

Edit docusaurus.config.ts:

const config: Config = {
title: 'My Docs',
tagline: 'Documentation site',
url: 'https://mydocs.com',
baseUrl: '/',

themeConfig: {
navbar: {
title: 'My Docs',
items: [
{
type: 'docSidebar',
sidebarId: 'docsSidebar',
label: 'Docs',
},
],
},
},
};

Change title, URL, navbar items, colors, etc.

Deployment

# Build static site
npm run build

# Output in 'build' folder
# Deploy to GitHub Pages, Vercel, Netlify, etc.

Push to GitHub → Vercel auto-deploys → Site live.

SMS Documentation Example

Imagine documenting School Management System API:

docs/
├── intro.md # Overview
├── getting-started/
│ ├── _category_.json
│ ├── installation.mdx
│ └── first-request.mdx
├── api/
│ ├── _category_.json
│ ├── students.mdx # Student endpoints
│ ├── exams.mdx # Exam endpoints
│ └── fees.mdx # Fee endpoints
└── guides/
├── _category_.json
├── authentication.mdx
└── pagination.mdx

Each API endpoint = article. Docusaurus builds docs site.

Development Workflow

# Make changes to markdown files
# Server auto-refreshes (hot reload)
npm start

# Check build works
npm run build

# Deploy
npm run serve

Files in docs/ = visible in sidebar. Edit, save, page updates.

Key Commands

npm start # Dev server
npm run build # Create build folder
npm run serve # Serve build locally
npm run swizzle # Customize components
npm run clear # Clear cache

Key Takeaways

  • Docusaurus = static site generator for docs
  • Markdown files in docs/ become web pages
  • _category_.json organizes folders
  • docusaurus.config.ts configures site
  • MDX = Markdown + React components
  • Perfect for API docs, tutorials, learning platforms
  • NexCoding uses Docusaurus for these articles
💡 Backend Developer Tip

Docusaurus removes styling burden. Write Markdown, get professional docs site. Perfect for documenting your ASP.NET Core APIs, microservices, or backend systems. Focus on content, not styling.

⚠️ Docusaurus Notes
  1. Learning curve — Easy basics, harder customization
  2. Not for blogs — Use Next.js, Hugo for blogs
  3. Not for apps — Use React/Angular for web apps
  4. Perfect for docs — Optimized for documentation sites
  5. MDX support — React components in Markdown
🤖Use AI to Learn Faster

Use ChatGPT, Claude, or Copilot to go deeper on Docusaurus Basics. Try these prompts:

  • "When use Docusaurus vs other static generators?"
  • "How does sidebar configuration work?"
  • "What's the difference between docs and blog in Docusaurus?"
  • "Quiz me on Docusaurus setup"

💡 Tip: After reading this article, paste your own code into AI and ask "What could go wrong here and why?" — fastest way to find edge cases and deepen understanding.

nexcoding.in