Use when working with docusaurus.config.js/ts files — validate the config structure, set required fields (title/url/baseUrl), fix URL and baseUrl formats, add presets and plugins, configure navbar/footer/theme settings, and move unknown keys into customFields. Triggers on tasks involving docusaurus.config.js, docusaurus.config.ts, site configuration, URL formats, presets, or theme config.
77
97%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Configuration lives in docusaurus.config.js or docusaurus.config.ts at project root.
import {Config} from '@docusaurus/types';
const config: Config = {
title: 'My Site', // Required
url: 'https://example.com', // Required, no trailing /
baseUrl: '/', // Required, must start and end with /
favicon: 'img/favicon.ico',
organizationName: 'my-org',
projectName: 'my-project',
presets: [['@docusaurus/preset-classic', { /* options */ }]],
themeConfig: { /* theme config */ },
customFields: { /* unknown fields go here */ }
};
export default config;title, url, baseUrl are mandatorycustomFields objecturl no trailing slash, baseUrl must be /path/[name, options] array formatBefore editing: Read current config to preserve format (JS/TS, ESM/CommonJS)
After editing: Verify required fields and URL formats, then validate the build:
npm run build — Docusaurus validates the full config and fails loudly on bad fields.npm start) to confirm runtime behaviour.A bad config breaks the whole site, so always confirm with a build before considering the change done.
See references/detailed-guide.md for comprehensive examples