# Configuration Doxla works with zero configuration. When you need to customize behavior, add a `doxla` key to your project's `package.json`. ```json { "name": "my-project", "version": "1.0.0", "doxla": { "components": { "dir": "docs/components" }, "dependencies": { "framer-motion": "^11.0.0" } } } ``` ## Options ### `components.dir` | | | |---|---| | **Type** | `string` | | **Default** | `"docs/components"` | The directory where Doxla looks for custom React components. These components become available in all `.mdx` files automatically. ```json { "doxla": { "components": { "dir": "src/mdx-components" } } } ``` Component files in this directory must: - Use PascalCase file names (e.g., `FeatureCard.tsx`) - Have a default export that is a React component - Use only alphanumeric characters in the file name See [Custom Components](custom-components) for a full guide. ### `dependencies` | | | |---|---| | **Type** | `Record` | | **Default** | `{}` | Extra npm packages to install in the viewer app at build time. Use this when your custom components import third-party libraries. ```json { "doxla": { "dependencies": { "framer-motion": "^11.0.0", "@heroicons/react": "^2.0.0" } } } ``` Package versions follow standard npm semver syntax. These dependencies are installed in an isolated build environment and do not affect your project's `node_modules`. ## Example A complete configuration using both options: ```json { "name": "my-project", "version": "1.0.0", "doxla": { "components": { "dir": "docs/components" }, "dependencies": { "framer-motion": "^11.0.0" } } } ``` If you don't need custom components or extra dependencies, you can omit the `doxla` key entirely. Doxla will use sensible defaults.