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.”
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.
---
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.
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.
Examples to start from
First-party scaffolds for the most common starting points. Open any of them in the repo, copy what you need, ship.
Basic docs site
A small static documentation site with the default Ardo setup, React Router shell, Tailwind layer, and deploy-ready build output.
Open exampleLibrary documentation
A React library docs setup with generated TypeScript API reference pages. Use this shape when your users need both guides and exported types.
Open exampleMonorepo documentation
A workspace-oriented setup for teams that keep packages and docs together. Useful when documentation should build from the same repository as the code.
Open exampleShip your docs this week
Start with the default theme, keep your React components, and publish static output from your own repo.