Open source drop-in replacement for Mintlify as a Vite plugin
See the codeDelightful docs. Mintlify drop-in replacement as a Vite plugin.
Holocron turns MDX pages and a docs.json config into a full documentation site. It runs as a Vite plugin, builds locally, and deploys anywhere.
Designed as a Mintlify-compatible replacement: same config shape, same MDX components, same frontmatter fields. If you have a Mintlify project, you can migrate in about 2 minutes.
npx -y skills add remorses/holocron -g -y
This installs skills for AI coding agents like Claude Code, Cursor, Windsurf, and others. Skills teach agents the workflows, patterns, and tools specific to this project.
Scaffold a new project with the CLI:
npx -y "@holocron.so/cli" create
This creates a working docs site with sample pages, navigation, and a vite.config.ts. Run pnpm install && pnpm dev and you're live.
pnpm add @holocron.so/vite react react-dom vite
Create a vite.config.ts:
import { defineConfig } from 'vite'
import { holocron } from '@holocron.so/vite'
export default defineConfig({
plugins: [holocron()],
})
The plugin auto-adds Spiceflow, Tailwind CSS, and React. No extra setup needed.
Create a docs.json at the project root:
{
"name": "My Docs",
"colors": { "primary": "#6366f1" },
"navigation": [
{
"group": "Getting Started",
"pages": ["index"]
}
]
}
Write your first page as index.mdx:
---
$schema: https://holocron.so/frontmatter.json
title: Welcome
description: My documentation site.
---
# Welcome
This is my first Holocron page.
Run the dev server:
npx vite
Open http://localhost:5173 and you should see your docs site.
Build for production:
npx vite build
node dist/rsc/index.js
vite build, deploy the output anywheredocs.json schema and MDX components.md per page, /llms.txt, /docs.zip, skill discovery| Area | Mintlify | Holocron |
|---|---|---|
| Hosting | Cloud only | Self-hosted, or holocron.so managed hosting |
| Build | Cloud build on push | Local vite build, standard CI |
| Pricing | Starts at $150/mo | Free, open source (MIT) |
| Git workflow | Mintlify-managed deploys | Standard git: PRs, branches, diffs |
| Config | docs.json | Same docs.json (compatible) |
| Components | Proprietary MDX set | Same components, open source |
| API reference | Interactive playground | Read-only API reference from OpenAPI |
| Search | Algolia / built-in | Orama (local, zero config) |
| Custom domains | Dashboard setting | Your hosting provider |
| Analytics | Built-in dashboard | Bring your own |
| AI exports | /llms.txt, .md routes | /llms.txt, /docs.zip, .md routes, skill discovery |
| Custom routes | Not possible | Mount alongside a Spiceflow app |
| Framework | Proprietary | Vite + React Server Components |
Holocron accepts unknown Mintlify fields via .passthrough(), so you can paste a full Mintlify docs.json without validation errors. Fields Holocron does not consume are silently ignored.
In your existing Mintlify docs directory:
1. Install dependencies
pnpm add @holocron.so/vite react react-dom vite
2. Create vite.config.ts
import { defineConfig } from 'vite'
import { holocron } from '@holocron.so/vite'
export default defineConfig({
plugins: [holocron()],
})
3. Keep your docs.json
Your existing docs.json works as-is. Holocron's schema accepts unknown Mintlify fields; the runtime ignores fields it does not consume.
4. Run it
npx vite
Your site should render at 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) |
docs.json + MDX files
│
▼
┌────────────────┐
│ Vite Plugin │ reads config, syncs navigation tree, processes MDX
│ (holocron()) │
└───────┬────────┘
│
▼
┌────────────────┐
│ Spiceflow │ React Server Components framework
│ + Tailwind │ auto-added by the plugin
└───────┬────────┘
│
▼
Full docs site with search, OpenAPI, dark mode, AI exports
The plugin reads your config file, walks the navigation tree to discover MDX pages, and generates virtual modules that the Spiceflow app consumes at render time. Only changed files get re-parsed on subsequent builds thanks to a git-SHA-based cache.
The fastest way to get a live URL. Builds and uploads your site to holocron.so:
npx -y "@holocron.so/cli" deploy
In GitHub Actions, the deploy command uses OIDC tokens automatically (no API key needed). Add permissions: id-token: write to your workflow.
npx vite build
node dist/rsc/index.js
The build output is a standard Node.js server. Deploy it to any platform that runs Node.
npx vite build
npx wrangler deploy
See Cloudflare deploy docs for wrangler.jsonc setup.
Every Holocron site generates AI-friendly endpoints out of the box:
.md routes: append .md to any page URL to get raw markdown. https://your-site.com/quickstart.md/llms.txt: an index of all pages with titles and .md URLs. Agents read this to discover the site structure./docs.zip: download every page as a .md file in one zip. Agents can grep it locally./.well-known/agent-skills/index.json exposes your docs as an installable AI skill.curl https://your-site.com/llms.txt
curl -L https://your-site.com/docs.zip -o docs.zip
my-docs/
├── index.mdx # pages are MDX files
├── guides/
│ ├── install.mdx
│ └── deploy.mdx
├── docs.json # navigation and config
├── vite.config.ts # one-line plugin setup
├── package.json
└── public/ # static assets (logos, images)
Full documentation at holocron.so.
MIT. If you use Holocron for your docs, please keep the "Powered by Holocron" footer link. It helps others discover the project.
533 followers · starred Aug 2021
270 followers · starred May 2020
644 followers · starred Jan 2022
843 followers · starred Jul 2026
Open source drop-in replacement for Mintlify as a Vite plugin
See the codeDelightful docs. Mintlify drop-in replacement as a Vite plugin.
Holocron turns MDX pages and a docs.json config into a full documentation site. It runs as a Vite plugin, builds locally, and deploys anywhere.
Designed as a Mintlify-compatible replacement: same config shape, same MDX components, same frontmatter fields. If you have a Mintlify project, you can migrate in about 2 minutes.
npx -y skills add remorses/holocron -g -y
This installs skills for AI coding agents like Claude Code, Cursor, Windsurf, and others. Skills teach agents the workflows, patterns, and tools specific to this project.
Scaffold a new project with the CLI:
npx -y "@holocron.so/cli" create
This creates a working docs site with sample pages, navigation, and a vite.config.ts. Run pnpm install && pnpm dev and you're live.
pnpm add @holocron.so/vite react react-dom vite
Create a vite.config.ts:
import { defineConfig } from 'vite'
import { holocron } from '@holocron.so/vite'
export default defineConfig({
plugins: [holocron()],
})
The plugin auto-adds Spiceflow, Tailwind CSS, and React. No extra setup needed.
Create a docs.json at the project root:
{
"name": "My Docs",
"colors": { "primary": "#6366f1" },
"navigation": [
{
"group": "Getting Started",
"pages": ["index"]
}
]
}
Write your first page as index.mdx:
---
$schema: https://holocron.so/frontmatter.json
title: Welcome
description: My documentation site.
---
# Welcome
This is my first Holocron page.
Run the dev server:
npx vite
Open http://localhost:5173 and you should see your docs site.
Build for production:
npx vite build
node dist/rsc/index.js
vite build, deploy the output anywheredocs.json schema and MDX components.md per page, /llms.txt, /docs.zip, skill discovery| Area | Mintlify | Holocron |
|---|---|---|
| Hosting | Cloud only | Self-hosted, or holocron.so managed hosting |
| Build | Cloud build on push | Local vite build, standard CI |
| Pricing | Starts at $150/mo | Free, open source (MIT) |
| Git workflow | Mintlify-managed deploys | Standard git: PRs, branches, diffs |
| Config | docs.json | Same docs.json (compatible) |
| Components | Proprietary MDX set | Same components, open source |
| API reference | Interactive playground | Read-only API reference from OpenAPI |
| Search | Algolia / built-in | Orama (local, zero config) |
| Custom domains | Dashboard setting | Your hosting provider |
| Analytics | Built-in dashboard | Bring your own |
| AI exports | /llms.txt, .md routes | /llms.txt, /docs.zip, .md routes, skill discovery |
| Custom routes | Not possible | Mount alongside a Spiceflow app |
| Framework | Proprietary | Vite + React Server Components |
Holocron accepts unknown Mintlify fields via .passthrough(), so you can paste a full Mintlify docs.json without validation errors. Fields Holocron does not consume are silently ignored.
In your existing Mintlify docs directory:
1. Install dependencies
pnpm add @holocron.so/vite react react-dom vite
2. Create vite.config.ts
import { defineConfig } from 'vite'
import { holocron } from '@holocron.so/vite'
export default defineConfig({
plugins: [holocron()],
})
3. Keep your docs.json
Your existing docs.json works as-is. Holocron's schema accepts unknown Mintlify fields; the runtime ignores fields it does not consume.
4. Run it
npx vite
Your site should render at 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) |
docs.json + MDX files
│
▼
┌────────────────┐
│ Vite Plugin │ reads config, syncs navigation tree, processes MDX
│ (holocron()) │
└───────┬────────┘
│
▼
┌────────────────┐
│ Spiceflow │ React Server Components framework
│ + Tailwind │ auto-added by the plugin
└───────┬────────┘
│
▼
Full docs site with search, OpenAPI, dark mode, AI exports
The plugin reads your config file, walks the navigation tree to discover MDX pages, and generates virtual modules that the Spiceflow app consumes at render time. Only changed files get re-parsed on subsequent builds thanks to a git-SHA-based cache.
The fastest way to get a live URL. Builds and uploads your site to holocron.so:
npx -y "@holocron.so/cli" deploy
In GitHub Actions, the deploy command uses OIDC tokens automatically (no API key needed). Add permissions: id-token: write to your workflow.
npx vite build
node dist/rsc/index.js
The build output is a standard Node.js server. Deploy it to any platform that runs Node.
npx vite build
npx wrangler deploy
See Cloudflare deploy docs for wrangler.jsonc setup.
Every Holocron site generates AI-friendly endpoints out of the box:
.md routes: append .md to any page URL to get raw markdown. https://your-site.com/quickstart.md/llms.txt: an index of all pages with titles and .md URLs. Agents read this to discover the site structure./docs.zip: download every page as a .md file in one zip. Agents can grep it locally./.well-known/agent-skills/index.json exposes your docs as an installable AI skill.curl https://your-site.com/llms.txt
curl -L https://your-site.com/docs.zip -o docs.zip
my-docs/
├── index.mdx # pages are MDX files
├── guides/
│ ├── install.mdx
│ └── deploy.mdx
├── docs.json # navigation and config
├── vite.config.ts # one-line plugin setup
├── package.json
└── public/ # static assets (logos, images)
Full documentation at holocron.so.
MIT. If you use Holocron for your docs, please keep the "Powered by Holocron" footer link. It helps others discover the project.
533 followers · starred Aug 2021
270 followers · starred May 2020
644 followers · starred Jan 2022
843 followers · starred Jul 2026