Skip to content
Ardo

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:5173

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 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.

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 7
MDX
Shiki
Vanilla Extract

How Ardo compares

Great tools exist. The right choice depends on whether your docs should live inside your React stack.

ArdoDocusaurusStarlightVitePressFumadocs
Best fitReact teams, static docsMature OSS docsContent-heavy Astro docsVue docsComposable React docs
UI frameworkReact 19ReactAstroVueReact
Build toolVite 8WebpackAstro/ViteViteFramework-dependent
StylingVanilla ExtractCSS ModulesTailwindPostCSSTailwind / custom
Your React componentsNativeNativeVia islandsNoNative
TypeDoc built inYesPluginPluginNoType tables / OpenAPI
Measured first page~155 KB gzip~500 KB+~50 KB~50 KBDepends on framework
Ownership modelOpen source, self-hostedOpen sourceOpen sourceOpen sourceOpen source
Core tradeoffReact-native over lowest JSMature but heavierLight, Astro-firstLight, Vue-firstPowerful, more composable

Ship your docs this week

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