Skip to content
Ardo

Ardo

Docs that live in your React stack

Static documentation built on React Router, Vite, and MDX. Write guides with your own components, generate API reference from your TypeScript source, and deploy plain files anywhere.

From zero to docs in four lines

Scaffold a complete static docs site. Add an MDX file, see it in navigation, deploy the output anywhere.

$ pnpm create ardo@latest my-docs
$ cd my-docs && pnpm install
$ pnpm dev

Server running at http://localhost:5173
“I went looking for a modern, lightweight docs framework that was simply React. It didn’t exist. So I built it.”
Sebastian Werner
Creator and maintainer of Ardo

Every option asked for a trade. VitePress is excellent, but it’s Vue. Starlight is fast, but React components live behind Astro islands. Docusaurus is React, but carries years of webpack-era weight. Great tools, wrong fit for a team that already lives in React.

Ardo is the tool I wanted that week: React Router and Vite doing what they already do best, MDX for writing, TypeDoc for API pages, and static files at the end. No second component model, no cloud platform, no sales call.

It’s open source and self-hosted. If your team builds in React, your docs can be part of the codebase instead of a separate product.

What's in the box

The defaults you need for serious docs, without taking ownership away from your codebase

React 19, natively

Not a compatibility layer on top of another docs framework. Use React components, hooks, providers, and TypeScript the same way you use them in your app.

Vite 8 with Rolldown

Modern Vite tooling keeps local docs work fast and predictable. Production output is static HTML and assets, ready for any host that serves files.

TypeDoc, zero config

Point Ardo at your TypeScript source and generate linked API reference pages during the docs build. Interfaces, types, functions, and classes stay close to the code.

Type-safe routes

React Router 8 gives the docs the same route model React teams already know, with static prerendering and a clean path to typed navigation.

Light and dark mode

Both themes ship by default. Follows system preferences, togglable by the reader, smooth transitions. Covers code blocks too.

Offline-capable search

Full-text search powered by MiniSearch. Runs entirely in the browser. No external service to configure, no API keys, works offline.

MDX with Shiki

Write Markdown, import React components where you need them. Code blocks are syntax-highlighted at build time with Shiki. No client-side JS for highlighting.

Make it yours

Type-safe theming with Vanilla Extract: set your brand hues in one line, override any token, swap components, or build a fully custom theme with autocomplete all the way.

Markdown when it's enough, React when it's not

Keep prose simple. Drop into real React when a guide needs your design system, a live example, or a custom workflow.

getting-started.mdx
---
title: Getting Started
---

# Getting Started

Install Ardo with your favorite package manager:

```bash
pnpm add ardo react react-dom
```

<Tip>
  Use `create-ardo` for a complete project setup!
</Tip>

<CustomAlert type="info">
  You can use **any React component** in your docs.
</CustomAlert>

Your stack, not ours

Ardo is built on tools React teams already use. No closed platform, no second UI framework, no docs-only component model.

React 19
Vite 8
TypeScript
React Router 8
MDX
Shiki
Vanilla Extract

Where Ardo fits

Every one of these is a good tool. The only question is whether your docs belong inside your React stack.

  • Ardo React + Vite

    Your React components, TypeDoc API pages, and static output, at about 155 KB gzip for the first page. No platform, no second UI model.

  • VitePress Vue

    Light and excellent for Markdown docs. The moment you want an interactive example, the component layer is Vue.

  • Starlight Astro

    Fast and content-first. React works, but only through Astro islands rather than as the native model.

  • Docusaurus React

    The mature, batteries-included choice, and genuinely React, but it carries years of webpack-era weight.

  • Fumadocs React

    The closest in spirit: powerful and composable. It leans on Next.js, where Ardo stays on plain React Router and Vite.

Ship your docs this week

Start with the default theme, keep your React components, and publish static output from your own repo.