docs.json shape and supports the common MDX component vocabulary it renders today.1pnpm add @holocron.so/vite react react-dom vite
123456import { defineConfig } from 'vite' import { holocron } from '@holocron.so/vite' export default defineConfig({ plugins: [holocron()], })
docs.json usually works as-is. Holocron's schema accepts unknown Mintlify fields, and the runtime ignores fields it does not consume, like integrations, analytics, or Mintlify-specific API playground settings.1npx vite
http://localhost:5173.title, description, icon, sidebarTitle, tag, hidden, deprecatedcolors, logo, favicon, navbar, footer, redirects, appearance, fonts, banner{ "tab": "API Reference", "openapi": "openapi.json" } generates pages from your spec| Area | Mintlify | Holocron |
| Hosting | Mintlify cloud | Self-hosted (Node.js or Cloudflare Workers) |
| Build | Cloud build on push | Local vite build |
| API playground | Interactive playground | Read-only API reference |
| Analytics | Built-in dashboard | Bring your own |
| Custom domains | Dashboard setting | Your hosting provider |
| Search | Algolia/built-in | Orama (local, built-in) |
holocron({ pagesDir: './pages' }) in vite.config.ts.docs.json, docs.jsonc, and holocron.jsonc. First found wins.$schema field in your config is ignored at runtime but useful for editor autocomplete.