Ardo
Modern, open docs for React teams
VitePress-style simplicity without leaving React. Build static documentation with React Router, Vite, MDX, your own components, and TypeScript API reference generation.
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:5173What'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 7 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.
Vanilla Extract styling
All styles are type-safe Vanilla Extract. Import design tokens from ardo/theme, write your own .css.ts files, and override any component with full autocomplete.
Make it yours
Override CSS variables, swap components, or build an entirely custom theme. Ardo exposes the runtime data; you decide how to render it.
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.
How Ardo compares
Great tools exist. The right choice depends on whether your docs should live inside your React stack.
| Ardo | Docusaurus | Starlight | VitePress | Fumadocs | |
|---|---|---|---|---|---|
| Best fit | React teams, static docs | Mature OSS docs | Content-heavy Astro docs | Vue docs | Composable React docs |
| UI framework | React 19 | React | Astro | Vue | React |
| Build tool | Vite 8 | Webpack | Astro/Vite | Vite | Framework-dependent |
| Styling | Vanilla Extract | CSS Modules | Tailwind | PostCSS | Tailwind / custom |
| Your React components | Native | Native | Via islands | No | Native |
| TypeDoc built in | Yes | Plugin | Plugin | No | Type tables / OpenAPI |
| Measured first page | ~155 KB gzip | ~500 KB+ | ~50 KB | ~50 KB | Depends on framework |
| Ownership model | Open source, self-hosted | Open source | Open source | Open source | Open source |
| Core tradeoff | React-native over lowest JS | Mature but heavier | Light, Astro-first | Light, Vue-first | Powerful, more composable |
Ship your docs this week
Start with the default theme, keep your React components, and publish static output from your own repo.