Skip to main content
skill CX Codex

rspress-best-practices — Claude Code skill for Rspress v2 sites

A skill that gives the agent rules for Rspress v2 sites: config, navigation, MDX, assets, search and deployment. Useful once the docs exist and the agent edits them.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add rstackjs/agent-skills --skill rspress-best-practices -a claude-code
Open on GitHub

What rspress-best-practices does

The skill covers how to write and review Rspress v2 sites. Config lives in rspress.config.ts with defineConfig from @rspress/core, and site-wide settings such as title, logo, base and lang stay in config instead of being repeated per page. Sidebar labels and order come from _meta.json or _nav.json, not from filenames.

Rules are grouped by area: CLI (rspress dev, build, preview, eject), docs structure, frontmatter, MDX and components, theme and styling, i18n, search, assets, plugins. For theming it tells you to reach for CSS variables and Layout slots first, and keep eject for cases where neither works. Interactive demos and API tables are pointed at @rspress/plugin-preview and @rspress/plugin-api-docgen.

One rule stands out: validate both rspress dev and rspress build, because a page that renders in dev can still fail during static generation. Broken links, missing assets and wrong base handling are worth catching before deployment. For exact option names the skill points to the Rspress docs.

What it helps with

  • group docs pages by topic and set sidebar order
  • move shared site settings into config instead of repeating them
  • restyle the theme with CSS variables before ejecting components
  • pick local or hosted search for the size of the site
  • catch broken links and wrong base before deploying

Example prompts for the agent

  • review my rspress.config.ts against Rspress v2 best practices
  • why does this page work in rspress dev but fail on rspress build?
  • set up the sidebar with _meta.json for the guides section

How to install rspress-best-practices

1Skills CLI (Vercel)

npx skills add rstackjs/agent-skills --skill rspress-best-practices -a claude-code

2Manually: put the files in place

~/.claude/skills/rspress-best-practices/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/rspress-best-practices/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about rspress-best-practices

How do I install rspress-best-practices in Claude?

Run npx skills add rstackjs/agent-skills --skill rspress-best-practices -a claude-code. The skill file then sits at ~/.claude/skills/rspress-best-practices/SKILL.md.

What does rspress-best-practices do?

It gives the agent rules for Rspress v2 sites: configuration, docs structure and navigation, frontmatter, MDX, theme, i18n, search, assets, plugins, build and deployment.

Which other platforms can run this skill?

Besides Claude it installs into Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode, each with its own install command and SKILL.md path.

Source text

SKILL.md · MIT
---
name: rspress-best-practices
description: Configure, review, or troubleshoot Rspress v2 sites, including content conventions, navigation, MDX, assets, search, and deployment.
---

# Rspress best practices

Apply these rules when writing or reviewing Rspress (v2) sites.

## Configuration

- Use `rspress.config.ts` and `defineConfig` from `@rspress/core`
- Set `root` explicitly when docs are not under the default `docs/` directory
- Keep site-wide settings such as `title`, `description`, `icon`, `logo`, `base`, and `lang` in config instead of repeating them in page files
- Prefer first-class Rspress options before custom theme code or low-level bundler overrides
- Keep custom theme code in a top-level `theme/` directory and import original theme pieces from `@rspress/core/theme-original`

## CLI

- Use `rspress dev` for local development
- Use `rspress build` for production output
- Use `rspress preview` only for local preview of the built site
- Use `rspress eject` only when CSS variables, class overrides, or layout wrapping cannot solve the customization

## Docs structure and navigation

- Keep docs content under one clear docs root and group pages by topic or workflow, not by team ownership
- Use `_meta.json` or `_nav.json` to control sidebar and navigation labels/order instead of encoding order in filenames
- Put reusable MDX snippets or shared components in shared files instead of duplicating them across pages
- Keep landing pages concise and link to deeper task-oriented guides from them

## Writing and frontmatter

- Add clear `title` and `description` frontmatter, and set `sidebar`, `outline`, `navbar`, or `footer` only when page defaults are not enough
- Use `pageType: home`, `doc`, `doc-wide`, `custom`, or `blank` intentionally based on layout needs
- Write task-first headings and short intros; avoid marketing-heavy copy in technical docs
- Prefer one topic per page and split overly long pages by workflow or feature area
- Keep code examples minimal, runnable, and version-accurate

## MDX and components

- Use MDX for interactive docs and embedded components, but keep the main narrative understandable as plain markdown
- Prefer documented Rspress theme/runtime APIs over importing from internal source paths
- For app-wide UI or providers, use `globalUIComponents` or theme overrides instead of repeating imports in each page

## Theme and styling

- Prefer CSS variables for brand colors, spacing, and surface styling
- Prefer BEM class overrides or `Layout` slots before ejecting built-in components
- In `theme/` files, keep `export * from '@rspress/core/theme-original'` unless intentionally replacing a named export
- Avoid full component ejection unless config, CSS, and wrapping cannot meet the requirement

## I18n, Search, And AI

- For multilingual sites, organize locale content under per-language directories and keep navigation mirrored where practical
- Keep descriptions and other frontmatter text in the same language as the page content
- Configure search intentionally: use local search for small or medium sites, and hosted search when scale or cross-version indexing requires it
- Enable `llms` or `ssgMd` only when the site benefits from machine-readable outputs, and keep descriptions accurate because those outputs surface page summaries

## Assets and public files

- Import source-managed images and components from docs/theme source when they belong to the content
- Use `public/` only for assets that must keep stable URL paths, such as favicons, social images, or download files
- Reference public assets by absolute site path and make sure they still work when `base` is set

## Plugins and integration

- Prefer official Rspress plugins for search, preview, and API-doc scenarios before building custom solutions
- For component or library docs, use `@rspress/plugin-preview` and `@rspress/plugin-api-docgen` when interactive demos or API tables are needed
- Keep plugin usage explicit in config and remove unused plugins to reduce maintenance cost

## Build, Deploy, And debugging

- Validate both `rspress dev` and `rspress build`; a page that works in dev can still fail during static generation
- Verify broken links, missing assets, and wrong `base` handling before deployment
- Keep generated output out of source control unless the hosting workflow explicitly requires committed artifacts
- When debugging content issues, inspect the resolved docs root, frontmatter, and theme overrides before assuming a bundler problem

## Documentation

- For the latest Rspress docs, read https://rspress.rs/llms.txt
- Use the config and API docs when checking exact option names or current behavior

© rstackjs · MIT · rstackjs/agent-skills

Similar skills

Everything for Writing and docs →

From the same set9

rsbuild-best-practices Provides rules for configuring, reviewing, and troubleshooting Rsbuild applications. Helps agents inspect builds, handle assets, and profile performance. CX Codex +1 2,700installs rstest-best-practices Rules for setting up and writing Rstest tests: environments, mocks, snapshots, coverage and CI. Useful when a package moves to Rstest or its tests have drifted apart. CX Codex +1 1,400installs rslib-best-practices Provides guidelines for building JavaScript and TypeScript libraries with Rslib. Useful when configuring outputs, declaration files, and dependency bundling. CX Codex +1 1,000installs rspack-v2-upgrade Walks a Rspack 1.x project through the v2 upgrade: dependencies, config, build checks. Useful when a major bump is too fiddly to do by hand. CX Codex +1 515installs rspress-description-generator A skill that fills in the description frontmatter field on Rspress pages that lack one. Useful when the docs site has grown and meta descriptions are missing in places. CX Codex +1 498installs rsbuild-v2-upgrade Walks a Rsbuild 1.x project through the v2 migration: dependencies, config, breaking options. Useful when a major bump would otherwise eat an evening. CX Codex +1 476installs migrate-to-rstest Migrates Jest, Vitest, or Playwright Test suites to Rstest while keeping test discovery, assertions, mocks, snapshots, and coverage intact. For moving a runner without rewriting scenarios. CX Codex +1 420installs rspress-custom-theme A skill that walks your agent through Rspress v2 theme changes, from CSS variables up to replacing built-in components. CX Codex +1 408installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor