Repository files navigation

Docora

Create beautiful docs with Markdown & React components.

docora

npm versionnpm downloadsLicense

🚀 Quick Start

Local Development

Create a new documentation project in seconds:

# Create a new project
npx create-docora my-docs
# Or create with i18n template for multi-language docs
npx create-docora my-docs -t i18n
# Navigate to your projectcd my-docs
# Start development server
npm run dev

That's it! Your documentation site will be running at http://localhost:3000

Online Development

Start by deploying the Docora template and create your git repository directly from Vercel:

Deploy with Vercel

🎯 What it creates

The CLI scaffolds a complete documentation project with:

  • Beautiful Design — Clean, modern documentation theme built on Next.js 16, React 19 & Tailwind CSS 4
  • 📱 Responsive — Mobile-first responsive design
  • 🌙 Dark Mode — Built-in dark/light mode with next-themes
  • 🌍 Internationalization — Native i18n with locale-prefixed routes, per-locale sidebars and bundled UI strings
  • 🔍 Search — Compile-time command palette (Cmd/Ctrl-K), no hosted index required
  • 📝 Markdown Enhanced — MDX with MDC syntax so components need no imports
  • 🎨 Customizable — Semantic CSS tokens, layout slots and custom MDX components
  • Fast — App Router, Server Components and statically prerendered pages
  • 🔧 TypeScript — Published as source, with full TypeScript support
  • 🤖 AI Assistant — Drop-in chat that answers from your docs, cites sources, and generates code
  • 🔌 Native MCP Server — Built-in Model Context Protocol server for AI tool integration (Cursor, VS Code, Claude, etc.)
  • 📚 Agent Skills Discovery — Publish skills from your docs site via /.well-known/skills/
  • 📄 LLM-Ready — Automatic llms.txt, llms-full.txt and raw Markdown routes
  • 🗺️ SEO Optimized — Sitemap, robots.txt, canonicals and OG image generation out of the box

Learn more in the Docora documentation.

🤖 AI features

Docora ships with a full AI stack to help both your users and contributors:

Assistant

Embed an AI-powered chat in your docs that answers questions, cites sources, and generates code examples. Powered by Vercel AI Gateway — the UI is hidden until a credential is present. Set AI_GATEWAY_API_KEY locally, or rely on Vercel OIDC in production.

MCP Server

Every Docora site exposes an MCP server at /mcp with list-pages and get-page. Add it to Cursor, VS Code, Claude or any MCP client:

https://your-docs-domain.com/mcp

Agent Skills

Drop skills into a skills/ directory and Docora serves them at /.well-known/skills/ following the Agent Skills Discovery RFC. Users install them with a single command:

npx skills add https://your-docs-domain.com

📁 Project Structure

Generated project

my-docs/
├── content/ # Your markdown content
│ ├── index.mdx # Homepage
│ └── docs/ # Documentation pages
├── app/ # Next.js App Router
├── public/ # Static assets
├── lib/source.ts # Content source
├── docs.config.ts # Site configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts

Optional files and folders

Docora is a theme on top of the App Router, so you can use any feature of a classical Next.js project:

my-docs/
├── docs.config.ts # Site name, header, socials, footer, SEO
├── next.config.ts # Next.js configuration (wrap with withDocora)
├── app/ # App Router
│ ├── components/ # Components (add your own)
│ ├── about/page.tsx # Extra pages (alongside the catch-all)
│ └── api/ # API routes
├── middleware.ts # Route middleware
└── public/ # Static assets

/content folder structure

Single language structure:

content/
├── index.mdx
├── docs/
│ ├── index.mdx
│ └── 1.getting-started/
│ ├── .navigation.yml
│ ├── 1.introduction.mdx
│ └── 2.installation.mdx
└── guide/
└── configuration.mdx

A numeric prefix sets sidebar order and is stripped from the URL. 1.introduction.mdx is served at /docs/getting-started/introduction.

Multi-language structure (with i18n):

content/
├── en/
│ ├── index.mdx
│ └── docs/
│ └── 1.getting-started/
│ └── 1.introduction.mdx
└── fr/
├── index.mdx
└── docs/
└── 1.getting-started/
└── 1.introduction.mdx

Scaffold this layout with:

npx create-docora my-docs -t i18n

⚡ Built with

Your project comes pre-configured with the best of the Next.js ecosystem:

📖 Documentation

For detailed documentation on customizing your Docora project, visit the GitHub repository.

🛠️ Development

This repository is a monorepo containing the theme, the CLI and the documentation site.

Local Development

# Clone this repository
git clone https://github.com/StaticMania/docora
# Install dependencies
pnpm install
# Run the documentation site
pnpm run dev

Package Structure

This is a monorepo containing:

🤝 Contributing

We welcome contributions. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.

📄 License

Published under the MIT license.

About

An Open Source Documentation Framework. Built with React, Next.js, TypeScript, Tailwind CSS and MDX — with routing, search, SEO, i18n and an MCP server built in, so both people and AI tools can read your docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Docora

Create beautiful docs with Markdown & React components.

docora

npm versionnpm downloadsLicense

🚀 Quick Start

Local Development

Create a new documentation project in seconds:

# Create a new project
npx create-docora my-docs
# Or create with i18n template for multi-language docs
npx create-docora my-docs -t i18n
# Navigate to your projectcd my-docs
# Start development server
npm run dev

That's it! Your documentation site will be running at http://localhost:3000

Online Development

Start by deploying the Docora template and create your git repository directly from Vercel:

Deploy with Vercel

🎯 What it creates

The CLI scaffolds a complete documentation project with:

  • Beautiful Design — Clean, modern documentation theme built on Next.js 16, React 19 & Tailwind CSS 4
  • 📱 Responsive — Mobile-first responsive design
  • 🌙 Dark Mode — Built-in dark/light mode with next-themes
  • 🌍 Internationalization — Native i18n with locale-prefixed routes, per-locale sidebars and bundled UI strings
  • 🔍 Search — Compile-time command palette (Cmd/Ctrl-K), no hosted index required
  • 📝 Markdown Enhanced — MDX with MDC syntax so components need no imports
  • 🎨 Customizable — Semantic CSS tokens, layout slots and custom MDX components
  • Fast — App Router, Server Components and statically prerendered pages
  • 🔧 TypeScript — Published as source, with full TypeScript support
  • 🤖 AI Assistant — Drop-in chat that answers from your docs, cites sources, and generates code
  • 🔌 Native MCP Server — Built-in Model Context Protocol server for AI tool integration (Cursor, VS Code, Claude, etc.)
  • 📚 Agent Skills Discovery — Publish skills from your docs site via /.well-known/skills/
  • 📄 LLM-Ready — Automatic llms.txt, llms-full.txt and raw Markdown routes
  • 🗺️ SEO Optimized — Sitemap, robots.txt, canonicals and OG image generation out of the box

Learn more in the Docora documentation.

🤖 AI features

Docora ships with a full AI stack to help both your users and contributors:

Assistant

Embed an AI-powered chat in your docs that answers questions, cites sources, and generates code examples. Powered by Vercel AI Gateway — the UI is hidden until a credential is present. Set AI_GATEWAY_API_KEY locally, or rely on Vercel OIDC in production.

MCP Server

Every Docora site exposes an MCP server at /mcp with list-pages and get-page. Add it to Cursor, VS Code, Claude or any MCP client:

https://your-docs-domain.com/mcp

Agent Skills

Drop skills into a skills/ directory and Docora serves them at /.well-known/skills/ following the Agent Skills Discovery RFC. Users install them with a single command:

npx skills add https://your-docs-domain.com

📁 Project Structure

Generated project

my-docs/
├── content/ # Your markdown content
│ ├── index.mdx # Homepage
│ └── docs/ # Documentation pages
├── app/ # Next.js App Router
├── public/ # Static assets
├── lib/source.ts # Content source
├── docs.config.ts # Site configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts

Optional files and folders

Docora is a theme on top of the App Router, so you can use any feature of a classical Next.js project:

my-docs/
├── docs.config.ts # Site name, header, socials, footer, SEO
├── next.config.ts # Next.js configuration (wrap with withDocora)
├── app/ # App Router
│ ├── components/ # Components (add your own)
│ ├── about/page.tsx # Extra pages (alongside the catch-all)
│ └── api/ # API routes
├── middleware.ts # Route middleware
└── public/ # Static assets

/content folder structure

Single language structure:

content/
├── index.mdx
├── docs/
│ ├── index.mdx
│ └── 1.getting-started/
│ ├── .navigation.yml
│ ├── 1.introduction.mdx
│ └── 2.installation.mdx
└── guide/
└── configuration.mdx

A numeric prefix sets sidebar order and is stripped from the URL. 1.introduction.mdx is served at /docs/getting-started/introduction.

Multi-language structure (with i18n):

content/
├── en/
│ ├── index.mdx
│ └── docs/
│ └── 1.getting-started/
│ └── 1.introduction.mdx
└── fr/
├── index.mdx
└── docs/
└── 1.getting-started/
└── 1.introduction.mdx

Scaffold this layout with:

npx create-docora my-docs -t i18n

⚡ Built with

Your project comes pre-configured with the best of the Next.js ecosystem:

📖 Documentation

For detailed documentation on customizing your Docora project, visit the GitHub repository.

🛠️ Development

This repository is a monorepo containing the theme, the CLI and the documentation site.

Local Development

# Clone this repository
git clone https://github.com/StaticMania/docora
# Install dependencies
pnpm install
# Run the documentation site
pnpm run dev

Package Structure

This is a monorepo containing:

🤝 Contributing

We welcome contributions. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.

📄 License

Published under the MIT license.

About

An Open Source Documentation Framework. Built with React, Next.js, TypeScript, Tailwind CSS and MDX — with routing, search, SEO, i18n and an MCP server built in, so both people and AI tools can read your docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Docora

Create beautiful docs with Markdown & React components.

docora

npm versionnpm downloadsLicense

🚀 Quick Start

Local Development

Create a new documentation project in seconds:

# Create a new project
npx create-docora my-docs
# Or create with i18n template for multi-language docs
npx create-docora my-docs -t i18n
# Navigate to your projectcd my-docs
# Start development server
npm run dev

That's it! Your documentation site will be running at http://localhost:3000

Online Development

Start by deploying the Docora template and create your git repository directly from Vercel:

Deploy with Vercel

🎯 What it creates

The CLI scaffolds a complete documentation project with:

  • Beautiful Design — Clean, modern documentation theme built on Next.js 16, React 19 & Tailwind CSS 4
  • 📱 Responsive — Mobile-first responsive design
  • 🌙 Dark Mode — Built-in dark/light mode with next-themes
  • 🌍 Internationalization — Native i18n with locale-prefixed routes, per-locale sidebars and bundled UI strings
  • 🔍 Search — Compile-time command palette (Cmd/Ctrl-K), no hosted index required
  • 📝 Markdown Enhanced — MDX with MDC syntax so components need no imports
  • 🎨 Customizable — Semantic CSS tokens, layout slots and custom MDX components
  • Fast — App Router, Server Components and statically prerendered pages
  • 🔧 TypeScript — Published as source, with full TypeScript support
  • 🤖 AI Assistant — Drop-in chat that answers from your docs, cites sources, and generates code
  • 🔌 Native MCP Server — Built-in Model Context Protocol server for AI tool integration (Cursor, VS Code, Claude, etc.)
  • 📚 Agent Skills Discovery — Publish skills from your docs site via /.well-known/skills/
  • 📄 LLM-Ready — Automatic llms.txt, llms-full.txt and raw Markdown routes
  • 🗺️ SEO Optimized — Sitemap, robots.txt, canonicals and OG image generation out of the box

Learn more in the Docora documentation.

🤖 AI features

Docora ships with a full AI stack to help both your users and contributors:

Assistant

Embed an AI-powered chat in your docs that answers questions, cites sources, and generates code examples. Powered by Vercel AI Gateway — the UI is hidden until a credential is present. Set AI_GATEWAY_API_KEY locally, or rely on Vercel OIDC in production.

MCP Server

Every Docora site exposes an MCP server at /mcp with list-pages and get-page. Add it to Cursor, VS Code, Claude or any MCP client:

https://your-docs-domain.com/mcp

Agent Skills

Drop skills into a skills/ directory and Docora serves them at /.well-known/skills/ following the Agent Skills Discovery RFC. Users install them with a single command:

npx skills add https://your-docs-domain.com

📁 Project Structure

Generated project

my-docs/
├── content/ # Your markdown content
│ ├── index.mdx # Homepage
│ └── docs/ # Documentation pages
├── app/ # Next.js App Router
├── public/ # Static assets
├── lib/source.ts # Content source
├── docs.config.ts # Site configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts

Optional files and folders

Docora is a theme on top of the App Router, so you can use any feature of a classical Next.js project:

my-docs/
├── docs.config.ts # Site name, header, socials, footer, SEO
├── next.config.ts # Next.js configuration (wrap with withDocora)
├── app/ # App Router
│ ├── components/ # Components (add your own)
│ ├── about/page.tsx # Extra pages (alongside the catch-all)
│ └── api/ # API routes
├── middleware.ts # Route middleware
└── public/ # Static assets

/content folder structure

Single language structure:

content/
├── index.mdx
├── docs/
│ ├── index.mdx
│ └── 1.getting-started/
│ ├── .navigation.yml
│ ├── 1.introduction.mdx
│ └── 2.installation.mdx
└── guide/
└── configuration.mdx

A numeric prefix sets sidebar order and is stripped from the URL. 1.introduction.mdx is served at /docs/getting-started/introduction.

Multi-language structure (with i18n):

content/
├── en/
│ ├── index.mdx
│ └── docs/
│ └── 1.getting-started/
│ └── 1.introduction.mdx
└── fr/
├── index.mdx
└── docs/
└── 1.getting-started/
└── 1.introduction.mdx

Scaffold this layout with:

npx create-docora my-docs -t i18n

⚡ Built with

Your project comes pre-configured with the best of the Next.js ecosystem:

📖 Documentation

For detailed documentation on customizing your Docora project, visit the GitHub repository.

🛠️ Development

This repository is a monorepo containing the theme, the CLI and the documentation site.

Local Development

# Clone this repository
git clone https://github.com/StaticMania/docora
# Install dependencies
pnpm install
# Run the documentation site
pnpm run dev

Package Structure

This is a monorepo containing:

🤝 Contributing

We welcome contributions. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.

📄 License

Published under the MIT license.

About

An Open Source Documentation Framework. Built with React, Next.js, TypeScript, Tailwind CSS and MDX — with routing, search, SEO, i18n and an MCP server built in, so both people and AI tools can read your docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Docora

Create beautiful docs with Markdown & React components.

docora

npm versionnpm downloadsLicense

🚀 Quick Start

Local Development

Create a new documentation project in seconds:

# Create a new project
npx create-docora my-docs
# Or create with i18n template for multi-language docs
npx create-docora my-docs -t i18n
# Navigate to your projectcd my-docs
# Start development server
npm run dev

That's it! Your documentation site will be running at http://localhost:3000

Online Development

Start by deploying the Docora template and create your git repository directly from Vercel:

Deploy with Vercel

🎯 What it creates

The CLI scaffolds a complete documentation project with:

  • Beautiful Design — Clean, modern documentation theme built on Next.js 16, React 19 & Tailwind CSS 4
  • 📱 Responsive — Mobile-first responsive design
  • 🌙 Dark Mode — Built-in dark/light mode with next-themes
  • 🌍 Internationalization — Native i18n with locale-prefixed routes, per-locale sidebars and bundled UI strings
  • 🔍 Search — Compile-time command palette (Cmd/Ctrl-K), no hosted index required
  • 📝 Markdown Enhanced — MDX with MDC syntax so components need no imports
  • 🎨 Customizable — Semantic CSS tokens, layout slots and custom MDX components
  • Fast — App Router, Server Components and statically prerendered pages
  • 🔧 TypeScript — Published as source, with full TypeScript support
  • 🤖 AI Assistant — Drop-in chat that answers from your docs, cites sources, and generates code
  • 🔌 Native MCP Server — Built-in Model Context Protocol server for AI tool integration (Cursor, VS Code, Claude, etc.)
  • 📚 Agent Skills Discovery — Publish skills from your docs site via /.well-known/skills/
  • 📄 LLM-Ready — Automatic llms.txt, llms-full.txt and raw Markdown routes
  • 🗺️ SEO Optimized — Sitemap, robots.txt, canonicals and OG image generation out of the box

Learn more in the Docora documentation.

🤖 AI features

Docora ships with a full AI stack to help both your users and contributors:

Assistant

Embed an AI-powered chat in your docs that answers questions, cites sources, and generates code examples. Powered by Vercel AI Gateway — the UI is hidden until a credential is present. Set AI_GATEWAY_API_KEY locally, or rely on Vercel OIDC in production.

MCP Server

Every Docora site exposes an MCP server at /mcp with list-pages and get-page. Add it to Cursor, VS Code, Claude or any MCP client:

https://your-docs-domain.com/mcp

Agent Skills

Drop skills into a skills/ directory and Docora serves them at /.well-known/skills/ following the Agent Skills Discovery RFC. Users install them with a single command:

npx skills add https://your-docs-domain.com

📁 Project Structure

Generated project

my-docs/
├── content/ # Your markdown content
│ ├── index.mdx # Homepage
│ └── docs/ # Documentation pages
├── app/ # Next.js App Router
├── public/ # Static assets
├── lib/source.ts # Content source
├── docs.config.ts # Site configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts

Optional files and folders

Docora is a theme on top of the App Router, so you can use any feature of a classical Next.js project:

my-docs/
├── docs.config.ts # Site name, header, socials, footer, SEO
├── next.config.ts # Next.js configuration (wrap with withDocora)
├── app/ # App Router
│ ├── components/ # Components (add your own)
│ ├── about/page.tsx # Extra pages (alongside the catch-all)
│ └── api/ # API routes
├── middleware.ts # Route middleware
└── public/ # Static assets

/content folder structure

Single language structure:

content/
├── index.mdx
├── docs/
│ ├── index.mdx
│ └── 1.getting-started/
│ ├── .navigation.yml
│ ├── 1.introduction.mdx
│ └── 2.installation.mdx
└── guide/
└── configuration.mdx

A numeric prefix sets sidebar order and is stripped from the URL. 1.introduction.mdx is served at /docs/getting-started/introduction.

Multi-language structure (with i18n):

content/
├── en/
│ ├── index.mdx
│ └── docs/
│ └── 1.getting-started/
│ └── 1.introduction.mdx
└── fr/
├── index.mdx
└── docs/
└── 1.getting-started/
└── 1.introduction.mdx

Scaffold this layout with:

npx create-docora my-docs -t i18n

⚡ Built with

Your project comes pre-configured with the best of the Next.js ecosystem:

📖 Documentation

For detailed documentation on customizing your Docora project, visit the GitHub repository.

🛠️ Development

This repository is a monorepo containing the theme, the CLI and the documentation site.

Local Development

# Clone this repository
git clone https://github.com/StaticMania/docora
# Install dependencies
pnpm install
# Run the documentation site
pnpm run dev

Package Structure

This is a monorepo containing:

🤝 Contributing

We welcome contributions. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.

📄 License

Published under the MIT license.

About

An Open Source Documentation Framework. Built with React, Next.js, TypeScript, Tailwind CSS and MDX — with routing, search, SEO, i18n and an MCP server built in, so both people and AI tools can read your docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Docora

Create beautiful docs with Markdown & React components.

docora

npm versionnpm downloadsLicense

🚀 Quick Start

Local Development

Create a new documentation project in seconds:

# Create a new project
npx create-docora my-docs
# Or create with i18n template for multi-language docs
npx create-docora my-docs -t i18n
# Navigate to your projectcd my-docs
# Start development server
npm run dev

That's it! Your documentation site will be running at http://localhost:3000

Online Development

Start by deploying the Docora template and create your git repository directly from Vercel:

Deploy with Vercel

🎯 What it creates

The CLI scaffolds a complete documentation project with:

  • Beautiful Design — Clean, modern documentation theme built on Next.js 16, React 19 & Tailwind CSS 4
  • 📱 Responsive — Mobile-first responsive design
  • 🌙 Dark Mode — Built-in dark/light mode with next-themes
  • 🌍 Internationalization — Native i18n with locale-prefixed routes, per-locale sidebars and bundled UI strings
  • 🔍 Search — Compile-time command palette (Cmd/Ctrl-K), no hosted index required
  • 📝 Markdown Enhanced — MDX with MDC syntax so components need no imports
  • 🎨 Customizable — Semantic CSS tokens, layout slots and custom MDX components
  • Fast — App Router, Server Components and statically prerendered pages
  • 🔧 TypeScript — Published as source, with full TypeScript support
  • 🤖 AI Assistant — Drop-in chat that answers from your docs, cites sources, and generates code
  • 🔌 Native MCP Server — Built-in Model Context Protocol server for AI tool integration (Cursor, VS Code, Claude, etc.)
  • 📚 Agent Skills Discovery — Publish skills from your docs site via /.well-known/skills/
  • 📄 LLM-Ready — Automatic llms.txt, llms-full.txt and raw Markdown routes
  • 🗺️ SEO Optimized — Sitemap, robots.txt, canonicals and OG image generation out of the box

Learn more in the Docora documentation.

🤖 AI features

Docora ships with a full AI stack to help both your users and contributors:

Assistant

Embed an AI-powered chat in your docs that answers questions, cites sources, and generates code examples. Powered by Vercel AI Gateway — the UI is hidden until a credential is present. Set AI_GATEWAY_API_KEY locally, or rely on Vercel OIDC in production.

MCP Server

Every Docora site exposes an MCP server at /mcp with list-pages and get-page. Add it to Cursor, VS Code, Claude or any MCP client:

https://your-docs-domain.com/mcp

Agent Skills

Drop skills into a skills/ directory and Docora serves them at /.well-known/skills/ following the Agent Skills Discovery RFC. Users install them with a single command:

npx skills add https://your-docs-domain.com

📁 Project Structure

Generated project

my-docs/
├── content/ # Your markdown content
│ ├── index.mdx # Homepage
│ └── docs/ # Documentation pages
├── app/ # Next.js App Router
├── public/ # Static assets
├── lib/source.ts # Content source
├── docs.config.ts # Site configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts

Optional files and folders

Docora is a theme on top of the App Router, so you can use any feature of a classical Next.js project:

my-docs/
├── docs.config.ts # Site name, header, socials, footer, SEO
├── next.config.ts # Next.js configuration (wrap with withDocora)
├── app/ # App Router
│ ├── components/ # Components (add your own)
│ ├── about/page.tsx # Extra pages (alongside the catch-all)
│ └── api/ # API routes
├── middleware.ts # Route middleware
└── public/ # Static assets

/content folder structure

Single language structure:

content/
├── index.mdx
├── docs/
│ ├── index.mdx
│ └── 1.getting-started/
│ ├── .navigation.yml
│ ├── 1.introduction.mdx
│ └── 2.installation.mdx
└── guide/
└── configuration.mdx

A numeric prefix sets sidebar order and is stripped from the URL. 1.introduction.mdx is served at /docs/getting-started/introduction.

Multi-language structure (with i18n):

content/
├── en/
│ ├── index.mdx
│ └── docs/
│ └── 1.getting-started/
│ └── 1.introduction.mdx
└── fr/
├── index.mdx
└── docs/
└── 1.getting-started/
└── 1.introduction.mdx

Scaffold this layout with:

npx create-docora my-docs -t i18n

⚡ Built with

Your project comes pre-configured with the best of the Next.js ecosystem:

📖 Documentation

For detailed documentation on customizing your Docora project, visit the GitHub repository.

🛠️ Development

This repository is a monorepo containing the theme, the CLI and the documentation site.

Local Development

# Clone this repository
git clone https://github.com/StaticMania/docora
# Install dependencies
pnpm install
# Run the documentation site
pnpm run dev

Package Structure

This is a monorepo containing:

🤝 Contributing

We welcome contributions. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.

📄 License

Published under the MIT license.

About

An Open Source Documentation Framework. Built with React, Next.js, TypeScript, Tailwind CSS and MDX — with routing, search, SEO, i18n and an MCP server built in, so both people and AI tools can read your docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Docora

Create beautiful docs with Markdown & React components.

docora

npm versionnpm downloadsLicense

🚀 Quick Start

Local Development

Create a new documentation project in seconds:

# Create a new project
npx create-docora my-docs
# Or create with i18n template for multi-language docs
npx create-docora my-docs -t i18n
# Navigate to your projectcd my-docs
# Start development server
npm run dev

That's it! Your documentation site will be running at http://localhost:3000

Online Development

Start by deploying the Docora template and create your git repository directly from Vercel:

Deploy with Vercel

🎯 What it creates

The CLI scaffolds a complete documentation project with:

  • Beautiful Design — Clean, modern documentation theme built on Next.js 16, React 19 & Tailwind CSS 4
  • 📱 Responsive — Mobile-first responsive design
  • 🌙 Dark Mode — Built-in dark/light mode with next-themes
  • 🌍 Internationalization — Native i18n with locale-prefixed routes, per-locale sidebars and bundled UI strings
  • 🔍 Search — Compile-time command palette (Cmd/Ctrl-K), no hosted index required
  • 📝 Markdown Enhanced — MDX with MDC syntax so components need no imports
  • 🎨 Customizable — Semantic CSS tokens, layout slots and custom MDX components
  • Fast — App Router, Server Components and statically prerendered pages
  • 🔧 TypeScript — Published as source, with full TypeScript support
  • 🤖 AI Assistant — Drop-in chat that answers from your docs, cites sources, and generates code
  • 🔌 Native MCP Server — Built-in Model Context Protocol server for AI tool integration (Cursor, VS Code, Claude, etc.)
  • 📚 Agent Skills Discovery — Publish skills from your docs site via /.well-known/skills/
  • 📄 LLM-Ready — Automatic llms.txt, llms-full.txt and raw Markdown routes
  • 🗺️ SEO Optimized — Sitemap, robots.txt, canonicals and OG image generation out of the box

Learn more in the Docora documentation.

🤖 AI features

Docora ships with a full AI stack to help both your users and contributors:

Assistant

Embed an AI-powered chat in your docs that answers questions, cites sources, and generates code examples. Powered by Vercel AI Gateway — the UI is hidden until a credential is present. Set AI_GATEWAY_API_KEY locally, or rely on Vercel OIDC in production.

MCP Server

Every Docora site exposes an MCP server at /mcp with list-pages and get-page. Add it to Cursor, VS Code, Claude or any MCP client:

https://your-docs-domain.com/mcp

Agent Skills

Drop skills into a skills/ directory and Docora serves them at /.well-known/skills/ following the Agent Skills Discovery RFC. Users install them with a single command:

npx skills add https://your-docs-domain.com

📁 Project Structure

Generated project

my-docs/
├── content/ # Your markdown content
│ ├── index.mdx # Homepage
│ └── docs/ # Documentation pages
├── app/ # Next.js App Router
├── public/ # Static assets
├── lib/source.ts # Content source
├── docs.config.ts # Site configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts

Optional files and folders

Docora is a theme on top of the App Router, so you can use any feature of a classical Next.js project:

my-docs/
├── docs.config.ts # Site name, header, socials, footer, SEO
├── next.config.ts # Next.js configuration (wrap with withDocora)
├── app/ # App Router
│ ├── components/ # Components (add your own)
│ ├── about/page.tsx # Extra pages (alongside the catch-all)
│ └── api/ # API routes
├── middleware.ts # Route middleware
└── public/ # Static assets

/content folder structure

Single language structure:

content/
├── index.mdx
├── docs/
│ ├── index.mdx
│ └── 1.getting-started/
│ ├── .navigation.yml
│ ├── 1.introduction.mdx
│ └── 2.installation.mdx
└── guide/
└── configuration.mdx

A numeric prefix sets sidebar order and is stripped from the URL. 1.introduction.mdx is served at /docs/getting-started/introduction.

Multi-language structure (with i18n):

content/
├── en/
│ ├── index.mdx
│ └── docs/
│ └── 1.getting-started/
│ └── 1.introduction.mdx
└── fr/
├── index.mdx
└── docs/
└── 1.getting-started/
└── 1.introduction.mdx

Scaffold this layout with:

npx create-docora my-docs -t i18n

⚡ Built with

Your project comes pre-configured with the best of the Next.js ecosystem:

📖 Documentation

For detailed documentation on customizing your Docora project, visit the GitHub repository.

🛠️ Development

This repository is a monorepo containing the theme, the CLI and the documentation site.

Local Development

# Clone this repository
git clone https://github.com/StaticMania/docora
# Install dependencies
pnpm install
# Run the documentation site
pnpm run dev

Package Structure

This is a monorepo containing:

🤝 Contributing

We welcome contributions. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.

📄 License

Published under the MIT license.

About

An Open Source Documentation Framework. Built with React, Next.js, TypeScript, Tailwind CSS and MDX — with routing, search, SEO, i18n and an MCP server built in, so both people and AI tools can read your docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Docora

Create beautiful docs with Markdown & React components.

docora

npm versionnpm downloadsLicense

🚀 Quick Start

Local Development

Create a new documentation project in seconds:

# Create a new project
npx create-docora my-docs
# Or create with i18n template for multi-language docs
npx create-docora my-docs -t i18n
# Navigate to your projectcd my-docs
# Start development server
npm run dev

That's it! Your documentation site will be running at http://localhost:3000

Online Development

Start by deploying the Docora template and create your git repository directly from Vercel:

Deploy with Vercel

🎯 What it creates

The CLI scaffolds a complete documentation project with:

  • Beautiful Design — Clean, modern documentation theme built on Next.js 16, React 19 & Tailwind CSS 4
  • 📱 Responsive — Mobile-first responsive design
  • 🌙 Dark Mode — Built-in dark/light mode with next-themes
  • 🌍 Internationalization — Native i18n with locale-prefixed routes, per-locale sidebars and bundled UI strings
  • 🔍 Search — Compile-time command palette (Cmd/Ctrl-K), no hosted index required
  • 📝 Markdown Enhanced — MDX with MDC syntax so components need no imports
  • 🎨 Customizable — Semantic CSS tokens, layout slots and custom MDX components
  • Fast — App Router, Server Components and statically prerendered pages
  • 🔧 TypeScript — Published as source, with full TypeScript support
  • 🤖 AI Assistant — Drop-in chat that answers from your docs, cites sources, and generates code
  • 🔌 Native MCP Server — Built-in Model Context Protocol server for AI tool integration (Cursor, VS Code, Claude, etc.)
  • 📚 Agent Skills Discovery — Publish skills from your docs site via /.well-known/skills/
  • 📄 LLM-Ready — Automatic llms.txt, llms-full.txt and raw Markdown routes
  • 🗺️ SEO Optimized — Sitemap, robots.txt, canonicals and OG image generation out of the box

Learn more in the Docora documentation.

🤖 AI features

Docora ships with a full AI stack to help both your users and contributors:

Assistant

Embed an AI-powered chat in your docs that answers questions, cites sources, and generates code examples. Powered by Vercel AI Gateway — the UI is hidden until a credential is present. Set AI_GATEWAY_API_KEY locally, or rely on Vercel OIDC in production.

MCP Server

Every Docora site exposes an MCP server at /mcp with list-pages and get-page. Add it to Cursor, VS Code, Claude or any MCP client:

https://your-docs-domain.com/mcp

Agent Skills

Drop skills into a skills/ directory and Docora serves them at /.well-known/skills/ following the Agent Skills Discovery RFC. Users install them with a single command:

npx skills add https://your-docs-domain.com

📁 Project Structure

Generated project

my-docs/
├── content/ # Your markdown content
│ ├── index.mdx # Homepage
│ └── docs/ # Documentation pages
├── app/ # Next.js App Router
├── public/ # Static assets
├── lib/source.ts # Content source
├── docs.config.ts # Site configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts

Optional files and folders

Docora is a theme on top of the App Router, so you can use any feature of a classical Next.js project:

my-docs/
├── docs.config.ts # Site name, header, socials, footer, SEO
├── next.config.ts # Next.js configuration (wrap with withDocora)
├── app/ # App Router
│ ├── components/ # Components (add your own)
│ ├── about/page.tsx # Extra pages (alongside the catch-all)
│ └── api/ # API routes
├── middleware.ts # Route middleware
└── public/ # Static assets

/content folder structure

Single language structure:

content/
├── index.mdx
├── docs/
│ ├── index.mdx
│ └── 1.getting-started/
│ ├── .navigation.yml
│ ├── 1.introduction.mdx
│ └── 2.installation.mdx
└── guide/
└── configuration.mdx

A numeric prefix sets sidebar order and is stripped from the URL. 1.introduction.mdx is served at /docs/getting-started/introduction.

Multi-language structure (with i18n):

content/
├── en/
│ ├── index.mdx
│ └── docs/
│ └── 1.getting-started/
│ └── 1.introduction.mdx
└── fr/
├── index.mdx
└── docs/
└── 1.getting-started/
└── 1.introduction.mdx

Scaffold this layout with:

npx create-docora my-docs -t i18n

⚡ Built with

Your project comes pre-configured with the best of the Next.js ecosystem:

📖 Documentation

For detailed documentation on customizing your Docora project, visit the GitHub repository.

🛠️ Development

This repository is a monorepo containing the theme, the CLI and the documentation site.

Local Development

# Clone this repository
git clone https://github.com/StaticMania/docora
# Install dependencies
pnpm install
# Run the documentation site
pnpm run dev

Package Structure

This is a monorepo containing:

🤝 Contributing

We welcome contributions. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.

📄 License

Published under the MIT license.

About

An Open Source Documentation Framework. Built with React, Next.js, TypeScript, Tailwind CSS and MDX — with routing, search, SEO, i18n and an MCP server built in, so both people and AI tools can read your docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Docora

Create beautiful docs with Markdown & React components.

docora

npm versionnpm downloadsLicense

🚀 Quick Start

Local Development

Create a new documentation project in seconds:

# Create a new project
npx create-docora my-docs
# Or create with i18n template for multi-language docs
npx create-docora my-docs -t i18n
# Navigate to your projectcd my-docs
# Start development server
npm run dev

That's it! Your documentation site will be running at http://localhost:3000

Online Development

Start by deploying the Docora template and create your git repository directly from Vercel:

Deploy with Vercel

🎯 What it creates

The CLI scaffolds a complete documentation project with:

  • Beautiful Design — Clean, modern documentation theme built on Next.js 16, React 19 & Tailwind CSS 4
  • 📱 Responsive — Mobile-first responsive design
  • 🌙 Dark Mode — Built-in dark/light mode with next-themes
  • 🌍 Internationalization — Native i18n with locale-prefixed routes, per-locale sidebars and bundled UI strings
  • 🔍 Search — Compile-time command palette (Cmd/Ctrl-K), no hosted index required
  • 📝 Markdown Enhanced — MDX with MDC syntax so components need no imports
  • 🎨 Customizable — Semantic CSS tokens, layout slots and custom MDX components
  • Fast — App Router, Server Components and statically prerendered pages
  • 🔧 TypeScript — Published as source, with full TypeScript support
  • 🤖 AI Assistant — Drop-in chat that answers from your docs, cites sources, and generates code
  • 🔌 Native MCP Server — Built-in Model Context Protocol server for AI tool integration (Cursor, VS Code, Claude, etc.)
  • 📚 Agent Skills Discovery — Publish skills from your docs site via /.well-known/skills/
  • 📄 LLM-Ready — Automatic llms.txt, llms-full.txt and raw Markdown routes
  • 🗺️ SEO Optimized — Sitemap, robots.txt, canonicals and OG image generation out of the box

Learn more in the Docora documentation.

🤖 AI features

Docora ships with a full AI stack to help both your users and contributors:

Assistant

Embed an AI-powered chat in your docs that answers questions, cites sources, and generates code examples. Powered by Vercel AI Gateway — the UI is hidden until a credential is present. Set AI_GATEWAY_API_KEY locally, or rely on Vercel OIDC in production.

MCP Server

Every Docora site exposes an MCP server at /mcp with list-pages and get-page. Add it to Cursor, VS Code, Claude or any MCP client:

https://your-docs-domain.com/mcp

Agent Skills

Drop skills into a skills/ directory and Docora serves them at /.well-known/skills/ following the Agent Skills Discovery RFC. Users install them with a single command:

npx skills add https://your-docs-domain.com

📁 Project Structure

Generated project

my-docs/
├── content/ # Your markdown content
│ ├── index.mdx # Homepage
│ └── docs/ # Documentation pages
├── app/ # Next.js App Router
├── public/ # Static assets
├── lib/source.ts # Content source
├── docs.config.ts # Site configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts

Optional files and folders

Docora is a theme on top of the App Router, so you can use any feature of a classical Next.js project:

my-docs/
├── docs.config.ts # Site name, header, socials, footer, SEO
├── next.config.ts # Next.js configuration (wrap with withDocora)
├── app/ # App Router
│ ├── components/ # Components (add your own)
│ ├── about/page.tsx # Extra pages (alongside the catch-all)
│ └── api/ # API routes
├── middleware.ts # Route middleware
└── public/ # Static assets

/content folder structure

Single language structure:

content/
├── index.mdx
├── docs/
│ ├── index.mdx
│ └── 1.getting-started/
│ ├── .navigation.yml
│ ├── 1.introduction.mdx
│ └── 2.installation.mdx
└── guide/
└── configuration.mdx

A numeric prefix sets sidebar order and is stripped from the URL. 1.introduction.mdx is served at /docs/getting-started/introduction.

Multi-language structure (with i18n):

content/
├── en/
│ ├── index.mdx
│ └── docs/
│ └── 1.getting-started/
│ └── 1.introduction.mdx
└── fr/
├── index.mdx
└── docs/
└── 1.getting-started/
└── 1.introduction.mdx

Scaffold this layout with:

npx create-docora my-docs -t i18n

⚡ Built with

Your project comes pre-configured with the best of the Next.js ecosystem:

📖 Documentation

For detailed documentation on customizing your Docora project, visit the GitHub repository.

🛠️ Development

This repository is a monorepo containing the theme, the CLI and the documentation site.

Local Development

# Clone this repository
git clone https://github.com/StaticMania/docora
# Install dependencies
pnpm install
# Run the documentation site
pnpm run dev

Package Structure

This is a monorepo containing:

🤝 Contributing

We welcome contributions. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.

📄 License

Published under the MIT license.

About

An Open Source Documentation Framework. Built with React, Next.js, TypeScript, Tailwind CSS and MDX — with routing, search, SEO, i18n and an MCP server built in, so both people and AI tools can read your docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages