Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

delightful docsfor humans & agents

What's new in Holocron. All releases are published on GitHub.

@holocron.so/vite@0.19.0

  1. MCP documentation tabs — auto-generate documentation pages from MCP (Model Context Protocol) definitions. Point a tab at a local JSON file or a remote Streamable HTTP MCP server:
    { "tab": "MCP", "mcp": "mcp-tools.json", "base": "mcp" }
    Each tool becomes a page with its input schema rendered as a parameter field list and a sampled JSON-RPC request example in the sidebar. Resources get their own pages with URI and MIME type. Supports selective mode with "..." rest expansion to interleave custom MDX pages with auto-generated ones, same as OpenAPI tabs.
  2. Changelog initialContent field — prepend custom MDX content above auto-generated release entries in changelog tabs:
    { "tab": "Changelog", "changelog": "https://github.com/owner/repo", "initialContent": "changelog/intro" }
    The referenced file goes through the same URL rewriting pipeline as inline .md imports, so relative image paths and links resolve correctly.
  3. OpenAPI multi-status response examples — the Response panel now shows examples for every response status, not just the first 2xx. When multiple statuses have examples, tab titles are prefixed with the status code for clarity. Closes #98
  4. OpenAPI spec HMR — editing a local .yaml or .json OpenAPI spec now triggers an automatic re-sync so API reference pages update without restarting the dev server.
  5. VideoBackgroundShader MDX component — a WebGL-powered dotted video background available directly in MDX as <VideoBackgroundShader>. Supports dotStyle="ascii" for an ASCII character atlas effect, configurable dot size, color, and fade gradients.
  6. Same-origin absolute URLs treated as internal links — absolute URLs pointing to the same site now use client-side routing instead of full page reloads.
  7. Stripped HTTP method from OpenAPI sidebar labels — the sidebar already shows a colored method badge, so the text label now omits the method to avoid redundancy.
  8. Fixed nested list spacing — nested lists inside <Li> elements are properly spaced.
  9. Fixed duplicate title in code blocks inside Tabs — code blocks inside <Tabs> no longer show the panel title twice.
  10. Fixed HMR race condition — concurrent syncNavigation calls during rapid file saves are serialized, preventing interleaved state corruption.
  11. Fixed AI widget aside overlap — the synthetic AI chat aside only uses full mode when the page has no other asides.
  12. Fixed query string/hash preservation on redirects — root and markdown-index redirects carry through query parameters and hash fragments.
  13. Fixed sidebar layout shift — removed font weight change on active sidebar items.
  14. Fixed AI chat drawer close behavior — the chat drawer closes on any link click, not just pathname changes.

@holocron.so/vite@0.18.2

  1. Fixed false broken link warnings for imported files outside pagesDir — when a markdown file outside pagesDir (e.g., a repo-root README.md) is imported into a page and contains relative links back to pages, those links are now correctly resolved to absolute slug paths instead of raw filesystem-relative paths.
    Previously all relative links in such imported files showed as broken even when the target page existed. For example, a README.md at the repo root imported via import Readme from '../../README.md' that contains [OpenAPI](./website/src/openapi.md) now resolves to /openapi instead of the unresolvable ../../website/src/openapi. Hash fragments and query strings are preserved.

@holocron.so/vite@0.18.1

  1. Restored motion as optional dependencymotion was accidentally removed in 0.18.0. Added it back so user projects that depend on it don't break on install.

@holocron.so/vite@0.18.0

  1. Build summary with actionable tips — after all individual warnings are logged, the build now prints a final summary:
    ▲ holocron found 3 invalid internal links across 2 pages. ▲ holocron 2 pages with MDX errors. Fix the syntax issues listed above.
    The broken links summary includes a link to the docs page explaining knownPaths.
  2. HOLOCRON_TOKEN accepted as env var alias for HOLOCRON_KEY — the Vite plugin, deploy command, and AI chat auth now check both HOLOCRON_TOKEN and HOLOCRON_KEY (first defined wins). Useful when your CI already has a HOLOCRON_TOKEN secret.
  3. Fixed OpenAPI renderer CJS crash in devrender-openapi.tsx was incorrectly marked 'use client', pulling safe-mdx and its transitive chain into the client bundle. The format package (CJS-only) caused:
    The requested module "format/format.js" does not provide an export named "default"
    The fix removes the 'use client' directive so the OpenAPI renderer stays server-side.
  4. Trimmed Prism syntax highlighting bundle (891 KB -> 471 KB) — removed ~170 obscure languages, keeping ~130 popular ones. If you need a removed language, open an issue.
  5. Deduplicated acorn in RSC bundle (180 KB saved) — a resolve alias now forces all acorn imports to the ESM entry, eliminating the CJS+ESM duplication. RSC bundle: 3,998 KB -> 3,818 KB.
  6. Removed dead dependencies — dropped @fastify/deepmerge, image-size, and motion from the package.

@holocron.so/cli@0.15.1

  1. HOLOCRON_TOKEN accepted as env var alias for HOLOCRON_KEY — deploy and all API commands now check both HOLOCRON_TOKEN and HOLOCRON_KEY (first defined wins). Useful when your CI already has a HOLOCRON_TOKEN secret and you don't want to rename it.

@holocron.so/vite@0.17.1

  1. Fixed OpenAPI double-framed code panels — when an operation defined multiple named request body or response examples, RequestExample and ResponseExample wrapped them in a CodeGroup inside a CodeCard, producing a double frame. Now they render as a single tabbed panel with each example as a named tab.
  2. Fixed app entry CSS crash without the Vite plugin — importing @holocron.so/vite/app outside the holocron Vite plugin (e.g. inside a @cloudflare/vitest-pool-workers test running in workerd) crashed with Cannot find module './styles/globals.css'. The import now resolves from the package src/ directory which is stable from both src/ and dist/.
  3. Hidden tab scrollbars and press feedback — the horizontal tab scroll container no longer shows a scrollbar on overflow, and tab buttons no longer flash a press/active highlight.

@holocron.so/vite@0.17.0

  1. Changelog tab generated from GitHub releases — add a tab with a changelog URL and Holocron fetches the repository's published releases at build time, rendering one page with a Mintlify-compatible <Update> entry per release (newest first, drafts skipped):
    { "tab": "Changelog", "changelog": "https://github.com/owner/repo" }
    The generated page uses mode: center (left nav hidden) with a right-side notice explaining it's generated from GitHub releases. Release notes are Markdown and are safely escaped so a release body can never break the page. Set a GITHUB_TOKEN / GH_TOKEN to avoid rate limits; the token is only ever sent to api.github.com. Transient GitHub outages render a warning page instead of failing the build.
  2. Page mode frontmatter (mode: center) — hide the left navigation sidebar per-page, matching Mintlify's mode layout control:
    --- title: Landing mode: center ---
    Holocron collapses Mintlify's five mode values into two real layouts: default / wide / frame keep the left nav; center / custom hide it and center the content. All five names are accepted so existing Mintlify frontmatter works unchanged.
  3. Static page prerendering with rendering: static — opt a page into build-time prerendering. Static pages render to HTML + RSC data at build for faster delivery and cheaper hosting. Use it for pages whose content never depends on the incoming request:
    --- title: Overview rendering: static ---
    The default is ssr, which renders on every request so pages can react to per-request data like cookies.
  4. Multiple OpenAPI examples render as switchable tabs — when an operation defines several named examples (the examples map), Holocron renders all of them as a tabbed code group instead of showing only the first. Example names become the tab labels:
    responses: '201': content: application/json: examples: Confirmed order: value: { id: 'order-001', status: 'pending' } Empty order: value: { id: 'order-002', items: [] }
  5. Markdown in OpenAPI descriptionsdescription fields (Markdown by spec) now render as formatted HTML — headings, lists, inline code, links, emphasis, code blocks — everywhere they appear: endpoint summary, parameters, schema properties, request bodies, and responses. The page <meta> description is still flattened to clean plain text. (Closes #96)
  6. Mix MDX pages with endpoint pages in OpenAPI tabs — an API Reference tab can now interleave hand-written MDX pages (overviews, authentication guides) with auto-generated endpoint pages.
  7. /index paths resolve to their canonical href — the */index forms now 308-redirect to the canonical href at runtime (query strings preserved) and count as valid targets for broken-link detection, so links to /guide/index no longer 404 or get flagged as broken.
  8. New @holocron.so/vite/prism export — reuse Holocron's vendored Prism bundle (prismjs core + ~300 grammars in one ESM module) to highlight code outside MDX, without shipping a duplicate bundle:
    import { Prism } from '@holocron.so/vite/prism' const html = Prism.highlight(code, Prism.languages[lang], lang)
  9. bleed prop on CodeBlock accepts 'both' | 'right' | 'none' — control how a code block bleeds into the page margins. 'both' (or true) bleeds both sides, 'right' only the right margin, 'none' (or false) stays inside the parent.
  10. Scroll-driven fade mask on the left navigation sidebar — the sidebar top/bottom edges fade as you scroll.
  11. Collapsible TOC headings in the left sidebar — nested headings can now collapse and expand.
  12. Broken link validation runs during builds — links pointing to non-existent pages are reported at build time.
  13. base slug prefix accepts a leading slash — the base field on OpenAPI and Changelog tabs is a slug prefix, so a leading slash is now allowed and ignored ("/docs/api" behaves like "docs/api"); trailing slashes are trimmed. The field was renamed from openapiBase to base and is now shared across virtual-tab providers.
  14. <Above> hero spans the full grid width including the side rails.
  15. Restyled inline code pills — GitHub-style with baseline alignment; body prose softened so bold text and headings stand out at full foreground color.
  16. Seamless HMR for globals.css edits — editing Holocron's global stylesheet hot-reloads without a full page refresh.
  17. Skip auto H1 injection for non-default page modes and JSX-first pages.
  18. Fixed per-section asides scoped on heading-first pages.
  19. Updated spiceflow to 1.26.0-rsc.3

@holocron.so/cli@0.15.0

  1. Clear deploy error when a subscription is required — when a deploy exceeds the free plan (a preview deploy, or a 2nd production deploy on the free tier), the server returns a SUBSCRIPTION_REQUIRED error. The CLI now surfaces the server's actionable message plus the upgrade URL instead of a generic Failed to create deployment:
    npx -y @holocron.so/cli deploy # A Holocron Pro subscription is required for this deployment. # Subscribe to continue: https://holocron.so/...
  2. Clearer expired-session message on login — when a saved session token is expired or invalid, the CLI now tells you to run the login command again instead of failing with a confusing error.
  3. Updated spiceflow to 1.26.0-rsc.3

@holocron.so/vite@0.16.0

  1. New @holocron.so/vite/mdx export — import Holocron MDX components in your own .tsx files:
    import { Card, CardGroup, Callout, Steps, Step } from '@holocron.so/vite/mdx'
    Useful when building custom components that compose Holocron primitives. In MDX pages, all components remain available globally without imports.
  2. Image processing preserves user-specified dimensions — when you set width or height on <Image> or <img> in MDX, those values are now preserved instead of being overridden with the natural image size. When only one dimension is provided, the other is computed proportionally from the aspect ratio.
  3. SVG images skip placeholder generation — SVG files no longer get a pixelated 16px rasterized WebP placeholder since SVGs are vector and render instantly.
  4. Fixed images in flex containers — images inside <Marquee>, card grids, and other flex layouts now use a definite pixel width capped at 100% instead of width: 100%, which caused circular sizing dependencies in flex items.
  5. AI logo proxy moved to /holocron-api/ namespace — avoids collisions with user API routes.
  6. AI logo cache improvements — stale SVG fallback responses are now evicted from the Cache API, and SVG fallbacks are never cached so retries can fetch the real AI-generated image.
  7. Reduced nav group font size — sidebar group titles decreased from 13px to 12px for a tighter sidebar.
  8. Thinner search clear icon — strokeWidth 1.5 instead of 2.
  9. Reduced chat input placeholder opacity — 75% for a subtler appearance.
  10. Removed vertical margin from Marquee — lets the component inherit spacing from its parent layout gap.

@holocron.so/vite@0.15.0

  1. Keyboard shortcut d to toggle dark mode — press d anywhere on the page to switch between light and dark mode. Skips when focus is in an input, textarea, or contenteditable, and ignores modifier combos (Cmd+D, Ctrl+D, etc.)
  2. Styled <blockquote> for plain MDX — standard markdown > quoted text now renders with a left border accent and italic muted text. GitHub-style callouts (> [!NOTE], etc.) still render as Callout components
  3. New --type-nav-group-size CSS variable — controls font-size of sidebar group titles. Override it to customize sidebar typography:
    :root { --type-nav-group-size: 14px; }
  4. Smarter AI chat assistant — gives shorter, messenger-style answers. Prefers linking to docs pages over re-explaining content
  5. Fixed ai-logo proxy crash in Dynamic Workerscaches.open() could throw in hosted environments where Cache API is unavailable, causing a 500. Now falls back to direct fetch
  6. Fixed theme shortcut firing during input — components that call preventDefault() no longer accidentally trigger the dark mode toggle
  7. Removed paragraph opacity 0.82 — body text no longer renders at reduced opacity
  8. Fixed subpath externalization in client buildsaddNoExternal for @holocron.so/vite now runs in all Vite environments (client, ssr, rsc)
  9. Updated spiceflow to 1.26.0-rsc.0

@holocron.so/cli@0.14.1

  1. Updated spiceflow to 1.26.0-rsc.0

@holocron.so/vite@0.14.3

  1. Fixed spiceflow resolution in strict pnpm workspaces — spiceflow is a transitive dep of @holocron.so/vite and not hoisted in strict pnpm. Virtual modules like virtual:app-entry can't resolve bare spiceflow imports because they have no filesystem location. A resolveId hook now resolves spiceflow from holocron's own source directory.
  2. Logo text uses heading font — navbar logo text now uses the configured heading font-family at 22px with weight 560 and tighter letter-spacing.
  3. Removed preserveSymlinks resolver — eliminated the custom @holocron.so/vite/src/* resolveId hook that was only needed when spiceflow was a workspace dependency.
  4. Updated spiceflow to 1.25.4-rsc.0

@holocron.so/vite@0.14.2

  1. Logo text uses heading font — the logo text in the navbar now renders with the configured heading font-family, heavier weight (560), and tighter letter-spacing at 22px, matching the editorial heading style.
  2. Removed preserveSymlinks resolver — eliminated custom resolveId hooks for spiceflow and @holocron.so/vite/src/* that were only needed when spiceflow was a workspace dependency. Vite's default resolution now handles everything correctly, fixing transitive dep resolution in strict pnpm workspaces.
  3. Updated spiceflow to 1.25.4-rsc.0

@holocron.so/vite@0.14.1

  1. DialKit config panel persists open/closed state — the config panel no longer resets to its default state on page refresh or RSC remount. Open/closed state is saved to localStorage so the panel stays how you left it.
  2. Reduced main bundle size — DialKit is now fully lazy-loaded. A stray value import was pulling the entire dialkit package into the eager bundle; switching to import type ensures it only loads when the config panel is opened.

@holocron.so/cli@0.14.0

  1. Rich whoami command with multi-org supportholocron whoami now shows your user info, all organizations with IDs and roles, and projects grouped per org:
    npx -y @holocron.so/cli whoami
  2. Multi-org project creationholocron projects create accepts --org [orgId] to target a specific organization. When you belong to multiple orgs and no --org is passed, an interactive picker appears.
  3. Deploy project picker shows org names — when deploying with multiple projects across orgs, the interactive picker now displays the org name alongside each project.
Thanks @tanishqkancharla for directing most of the UI changes!

@holocron.so/vite@0.14.0

  1. Analytics integrations for 14 providers — new integrations field in docs.json injects client-side analytics scripts. Supports Fathom, Plausible, Pirsch, GA4, GTM, PostHog, Mixpanel, Hotjar, Heap, Segment, Clarity, Amplitude, LogRocket, and Clearbit:
    { "integrations": { "ga4": { "measurementId": "G-XXXXXXXXXX" }, "plausible": { "domain": "docs.example.com" }, "fathom": { "siteId": "ABCDEF" } } }
  2. New <Marquee> MDX component — infinite scrolling content strip, available directly in MDX without imports. Supports horizontal and vertical directions, fade edges, configurable speed, and hover deceleration:
    <Marquee duration={30} fade slowOnHover> <img src="/logos/github.svg" /> <img src="/logos/vercel.svg" /> </Marquee>
  3. logo.text config field — display a site name next to the logo in the navbar:
    { "logo": { "light": "/favicon.svg", "text": "My Docs" } }
  4. Layout and typography controls in docs.json — new layout (maxWidth, sidebarWidth, columnGap, radius) and fonts (fontSize, heading.fontSize) fields for customizing page geometry and font sizes without custom CSS.
  5. Live config panel on preview deployments — a DialKit-powered config panel appears in dev mode and on preview deployments, letting you live-tweak colors, layout, fonts, and more.
  6. Relative-path global anchors with client-side navigation — anchors pointing to relative paths now use client-side navigation instead of full page reloads.
  7. Version/dropdown inner tabs visible in the tab bar — inner tabs inside versions/dropdowns now correctly appear in the header tab bar.
  8. Search UI improvements — keyboard-layout-aware shortcut hints, accent border on focus, clear button, and "/" shortcut alongside Cmd+K/Ctrl+K.
  9. Lazy-loaded Prism.js — syntax highlighting loaded via dynamic import for faster initial page render.
  10. Safe-mdx render errors shown in-page during dev — missing components and invalid JSX now display as a Warning callout directly on the page.
  11. CSS variable border-radius tokens — all border-radius values now derive from --radius, customizable via layout.radius.
  12. sidebarTitle frontmatter — use a long title for SEO while keeping the sidebar label short.
  13. Fixed ordered list numbering — lists split by code blocks now continue numbering correctly.
  14. Fixed theme token cascade — Holocron tokens now use a low-priority CSS cascade layer so user CSS overrides them properly.
  15. Fixed sidebar search filtering — search results update synchronously, fixing flaky states.
  16. UI polish — hover background on cards, bottom border on last table row, cleaner active tabs, differentiated sidebar group labels, wider API reference aside panel (460px), hidden line numbers in API reference examples, and more.
Thanks @tanishqkancharla for directing most of the UI changes!

@holocron.so/cli@0.13.0

  1. New --key option for holocron create — pass an existing API key to skip the entire cloud setup flow (no device flow login, no project creation, no API key creation). The key is written directly to .env:
    npx -y @holocron.so/cli create my-docs --key holo_xxxxxxxxxxxx
    This enables one-step scaffolding when the key is already known, e.g. from the holocron.so dashboard.

@holocron.so/vite@0.13.0

  1. Anchor placement in tabs or sidebar — anchors now support a placement field that controls where they render. "sidebar" (the new default) places anchors at the top of the left navigation sidebar with icon and label. "tabs" places them in the header tab bar, preserving the previous behavior. You can mix both placements in the same config:
    { "navbar": { "links": [ { "label": "GitHub", "url": "https://github.com/...", "placement": "sidebar" }, { "label": "Changelog", "url": "/changelog", "placement": "tabs" } ] } }
  2. Copy-to-clipboard button on code blocks — every fenced code block now shows a copy button on hover in the top-right corner. The button fades in, transitions to a checkmark icon on success, and gracefully handles clipboard write failures in insecure contexts.
  3. .md/.mdx extensions stripped from internal links — links like [guide](/getting-started.md) are now automatically rewritten to /getting-started at build time. Previously these links were excluded from broken-link validation and would serve raw markdown or 404. Reference-style links and JSX href attributes are also handled.
  4. Dark mode persists across reloads — a blocking <script> now reads the holocron-theme cookie before first paint, preventing the theme from flashing or resetting during RSC streaming.
  5. Stale build artifacts cleaned before each buildvite build now removes old client/, rsc/, ssr/ directories from dist/ before building, preventing stale artifacts from leaking into fresh builds. Cache files are preserved for incremental builds.

@holocron.so/vite@0.12.0

  1. Code block meta props: bleed, lines, title, highlight — fenced code blocks now support meta string options parsed at build time:
    ```ts title="vite.config.ts" highlight="3-5" lines=false bleed=true import \{ defineConfig \} from 'vite' import holocron from '@holocron.so/vite' export default defineConfig(\{ plugins: [holocron()], \}) ```
    • title="..." or bare words → filename/label header above the code block
    • highlight="1-3,7" → dims non-highlighted lines with a background overlay
    • lines=false → hides line numbers (on by default)
    • bleed=true → extends the code block into page margins
  2. Improved inline code in headings — inline code inside headings now inherits the heading font size and weight instead of shrinking to 0.875em. Background pill is hidden, color uses full-contrast var(--foreground) to match heading text. H2 headings also get a decorative divider line (previously h1 only).
  3. Theme-adaptive diagram labels — ASCII diagram labels in code blocks now use var(--primary) instead of hardcoded green values, so they automatically match the site color theme.
  4. Tighter line-height for diagram code blocks — code blocks with diagram languages (diagram, ascii, box) use line-height: 1.3 instead of 1.6, improving vertical alignment of box-drawing characters and connected lines.
  5. Inline code color fix.inline-code now uses var(--foreground) in both light and dark mode instead of hardcoded rgba() values, so it adapts to custom themes.

@holocron.so/vite@0.11.0

  1. Inline .md/.mdx imports at remark level — imported markdown files are now spliced directly into the page's mdast tree before any remark plugins run. Headings from imported files appear in the TOC automatically, images go through the normal build-time processor, and all remark plugins (callouts, code groups, mermaid, etc.) apply to the inlined content. Recursive imports are supported with cycle detection. Each imported file is parsed exactly once and the mdast is reused for import extraction, image dep collection, and pre-building spliced nodes. Pages without .md imports skip the full AST parse entirely via a regex fast path.
  2. New knownPaths config field — suppress false broken-link warnings when mounting docs alongside other routes (API endpoints, dashboards, external apps). Supports exact paths and prefix wildcards:
    { "knownPaths": ["/api/*", "/dashboard", "/blog/*"] }
  3. Imported .md/.mdx files included in AI chat context — imported markdown snippets and shared fragments are now sent to the AI chat agent during local dev, matching production behavior where they were already included via docs.zip.
  4. Content column capped at 720px — the derived --grid-content-width is now wrapped in min(720px, ...) so it never grows beyond 720px regardless of grid geometry.
  5. Fixed heading anchor scroll offsetscroll-margin-top now uses --sticky-top instead of --header-height, adding breathing room below the navbar when navigating to #id anchors.
  6. Fixed AI chat loading dots alignment — loading indicator dots are now aligned to top-start instead of vertically centered.

@holocron.so/vite@0.10.2

  1. Fixed custom entry CSS under Cloudflare dev — custom-entry apps now correctly load Holocron's global stylesheet when running under wrangler dev. The Spiceflow RSC entry now uses the real custom entry file instead of routing through a virtual module, so vite-rsc can walk the import graph and collect all CSS dependencies.
  2. Removed manual safe-mdx aliases — safe-mdx 1.11.1 ships a package-level react-server export map fallback, so Holocron no longer needs to carry private path aliases for safe-mdx, safe-mdx/parse, and safe-mdx/client.
  3. Fixed broken 0.10.1 publish — 0.10.1 was published with npm instead of pnpm, leaving workspace:^ references unresolved in the published package.json.

@holocron.so/vite@0.10.1

  1. Fixed custom entry CSS under Cloudflare dev — custom-entry apps now correctly load Holocron's global stylesheet when running under wrangler dev. The Spiceflow RSC entry now uses the real custom entry file instead of routing through a virtual module, so vite-rsc can walk the import graph and collect all CSS dependencies.
  2. Removed manual safe-mdx aliases — safe-mdx 1.11.1 ships a package-level react-server export map fallback, so Holocron no longer needs to carry private path aliases for safe-mdx, safe-mdx/parse, and safe-mdx/client.

@holocron.so/vite@0.10.0

  1. Build-time processing for imported .md/.mdx files — imported markdown files (e.g. import Guide from "./snippets/guide.md") now go through the same build pipeline as regular pages: all remark plugins (GitHub callouts, code groups, etc.), image resolution (dimensions, placeholders, copy to public), and normalization. Previously these were loaded as raw strings and parsed at render time without any processing.
  2. Imported MDX headings appear in sidebar TOC — headings from imported .md/.mdx files now show up in the left sidebar table of contents in correct document order. Previously imported components were opaque JSX nodes, so their headings were invisible to the TOC.
  3. Broken internal link warnings during sync — Holocron now walks the mdast tree during sync and resolves every internal link against the page index and redirect sources. Links pointing to non-existent pages log a warning with source location. Handles absolute (/foo), relative (./foo, ../bar), hash fragments, and query strings.
  4. Serve raw markdown at .mdx URLs — pages were already served as raw markdown at /<slug>.md for AI agents. Now .mdx URLs work identically, returning the same content with text/markdown content-type.
  5. Imported files included in /docs.zip — the /docs.zip endpoint now includes imported markdown files (snippets, shared fragments, files outside pagesDir) alongside navigation pages.
  6. Global CSS loads for custom entries — custom-entry apps that mount Holocron through a user-owned Spiceflow entry now correctly load Holocron's global stylesheet.
  7. Spiceflow moved to regular dependencies — users no longer need to install spiceflow separately. It ships as a regular dependency, so pnpm install resolves it automatically.
  8. Fixed copy-as-markdown button on index pages — the button was fetching /.md (404) on the root page instead of /index.md.
  9. Fixed link hydration mismatchisExternalHref used new URL() origin comparison that produced different results on server vs client for relative paths. Replaced with a consistent regex.
  10. Fixed empty sidebar group labels — unnamed sidebar groups no longer render an empty <div> wrapper.
  11. Fixed config HMR — editing docs.json colors and styles now hot-reloads correctly without stale CSS artifacts.

@holocron.so/cli@0.12.2

  1. Fixed $schema URL in scaffolded projectsholocron create now writes "$schema": "https://holocron.so/docs.json" instead of the old unpkg URL that depended on npm publish timing and internal file paths.

@holocron.so/vite@0.9.0

  1. New prev/next page navigation in the right sidebar — every page now shows chevron arrows linking to the previous and next pages in navigation order, plus a "Copy as Markdown" button that copies the current page content to clipboard. Tooltips on the arrows show the target page title via portal-based rendering to avoid clipping.
  2. Frontmatter JSON Schema — a new frontmatter-schema.json is generated alongside the config schema, describing all supported MDX frontmatter fields (title, description, icon, SEO meta, hidden, etc.). Add $schema: "https://holocron.so/frontmatter.json" to your MDX frontmatter for IDE autocomplete and validation.
  3. Icon name autocomplete in docs.json — the config JSON schema now references external enum schemas for lucide and Font Awesome icon names. IDEs that support $ref resolution fetch icon name lists on demand from holocron.so, giving you autocomplete for all 4,000+ supported icon names.
  4. Shared cn() utility (clsx + tailwind-merge) — all components now use a shared cn() following the shadcn convention. This fixes a bug where passing className to <Logo> would completely replace the base sizing classes instead of merging with them. All components with className props now merge correctly via tailwind-merge.
  5. text prop on <Logo /> — pass <Logo text="My Docs" /> to render an AI-generated logo using that text, bypassing the site config logo entirely.
  6. Fixed Tailwind HMR for MDX page edits — editing MDX files or imported components no longer triggers a full page reload. New Tailwind utility classes are now compiled and injected in-place during HMR, preserving client state. Previously, Tailwind treated MDX files as external template changes and forced a reload.
  7. Upgraded Spiceflow to 1.25.3-rsc.0 — aligns all workspace packages on the same RSC build, avoiding duplicate framework versions.
  8. Search bar focus styling — replaced the thick box-shadow focus ring with a subtle border-color change to muted-foreground for a cleaner active state.
  9. AI chat polish — reduced the ShowMore collapsed height from 80px to 40px for tighter tool output previews.

@holocron.so/cli@0.12.1

  1. Upgraded Spiceflow to 1.25.3-rsc.0 — aligns with the latest RSC build used by @holocron.so/vite, avoiding duplicate framework versions at runtime.

@holocron.so/vite@0.8.0

  1. New <Logo /> MDX component — render the configured site logo directly inside docs content. It uses the same resolved light, dark, and generated logo variants as the navbar and footer.
    <Logo />
  2. Tailwind scans your docs tree — Holocron now adds your configured pagesDir as a Tailwind source, so utility classes used in MDX content and imported docs components are included in the generated CSS.
  3. Better MDX error pages and build failures — MDX parse failures stay attached to their page route in dev, rendering a focused error page instead of turning into a 404. Production builds fail with the formatted code-frame message so broken docs do not deploy silently.
  4. MDX component validation during sync — Holocron validates rendered MDX against the supported component map while syncing navigation. Unknown components and invalid imported MDX now surface earlier with the page source that caused the failure.
  5. Self-hosted JetBrains Mono — code now uses @fontsource-variable/jetbrains-mono, avoiding a third-party font request for the default monospace font.
  6. JSONC syntax highlighting — fenced jsonc code blocks now reuse Prism's JSON grammar instead of rendering without highlighting.
  7. OpenAPI success responses open by default — generated endpoint pages now expand successful response examples first, making the useful response shape visible immediately.
  8. Navigation and layout polish — browser scroll restoration works across docs navigation, unnamed sidebar groups no longer break search, responsive images keep their intended sizing, Frame captions align better, and the page AI widget stays hidden on mobile.

@holocron.so/cli@0.12.0

  1. Scaffolded projects now use docs.jsoncholocron create generates the starter config as JSONC, so new projects can keep comments and trailing commas in the same config file Holocron reads by default.
    npx -y @holocron.so/cli create my-docs
    The create command now parses the template as JSONC before writing the project name and schema URL, so custom starter templates can use JSONC syntax safely.

@holocron.so/vite@0.7.1

  1. Fixed internal links opening in new tabs — relative links, hash links, and same-origin links in docs content now navigate in-place using client-side navigation instead of opening a new browser tab. External links still open in a new tab as expected.
  2. Table edges align flush with page content — removed left padding from the first table column and right padding from the last column so table data aligns with surrounding editorial content.
  3. Improved AI chat scroll behavior — after submitting a message, the chat drawer now scrolls your message to the top of the viewport instead of jumping to the bottom. The loading state and assistant response area get enough height to keep the scroll position stable during streaming.
  4. Fixed chat message overflow — resolved an issue where overflow-x-hidden on chat text containers silently triggered vertical scrollbars due to CSS spec behavior. Content now grows naturally without nested scroll regions.

@holocron.so/vite@0.7.0

  1. Auto-derive dark mode --primary when colors.light is not set — if you only configure colors.primary without an explicit colors.light, the dark mode accent was identical to light mode, making links unreadable on dark backgrounds. Now auto-generates a lighter variant via color-mix(in oklch, <primary> 40%, white), roughly matching Tailwind's 200-scale lightness. If you explicitly set colors.light, your value is still used as-is.
  2. Fixed Cloudflare Workers deploy crash ("No such module ssr/isbot") — the @cloudflare/vite-plugin was loaded via async import(), leaving an unresolved Promise in the plugins array. Spiceflow couldn't detect it, so noExternal: true was never set for SSR/RSC environments. Bare npm imports like isbot and history stayed external, crashing Dynamic Workers at runtime. The plugin is now imported synchronously and placed before spiceflow in the plugin array.
  3. Fixed image height override in content area — a blanket .slot-main img { height: auto !important } rule was overriding the explicit height: 100% set by the Image component for pixelated placeholder overlays. The global rule has been removed; height: auto and max-width: 100% are now applied only on specific image paths that need them.
  4. Tighter TOC panel spacing — reduced right-sidebar table of contents item vertical padding from py-1.5 to py-1.
  5. Excluded spiceflow from RSC/SSR optimizeDeps — prevents Vite from pre-bundling spiceflow in RSC and SSR environments so it stays in the transform pipeline as-is.
  6. Deploy output writes to dist/.holocron — when HOLOCRON_DEPLOY=1 is set, the Vite plugin now sets build.outDir to dist/.holocron instead of dist/, keeping deploy artifacts separate from normal platform-specific builds.

@holocron.so/cli@0.11.1

  1. Deploy auth check runs before build — credentials are validated upfront so missing auth fails immediately instead of after a full Vite build
  2. Deploy output separated from normal buildholocron deploy now writes to dist/.holocron instead of dist/, keeping deploy artifacts isolated from platform-specific Vite builds (Cloudflare vs Node.js)
  3. Removed --skip-build flag — builds always run during deploy. The separate output dir makes the flag unnecessary

@holocron.so/cli@0.11.0

  1. Keyless deploys from GitHub Actions via OIDCholocron deploy now supports GitHub Actions OIDC authentication natively. No HOLOCRON_KEY secret needed; just set permissions: id-token: write in your workflow:
    permissions: id-token: write contents: read steps: - uses: actions/checkout@v4 - run: npx holocron deploy
    The CLI mints a fresh OIDC token for each deploy step (create, upload, finalize) and the server derives project, branch, and preview state from the verified JWT claims. API key and session auth continue to work as before.
  2. Scaffold no longer lists spiceflow as a direct dependencyholocron create generates a leaner package.json. Spiceflow is a transitive dependency of @holocron.so/vite so users don't need to install it separately.
  3. Improved deploy error messages — auth failure now suggests all three auth methods (env var, holocron login, or GitHub Actions OIDC) instead of only the first two.

@holocron.so/vite@0.6.1

  1. @cloudflare/vite-plugin is now a direct dependency — users deploying to Cloudflare Workers no longer need to install it separately. It ships as a transitive dep of @holocron.so/vite.
  2. Fixed OpenAPI spec resolution when pagesDir is set — specs inside a custom pagesDir (e.g. pagesDir: "./src" with api.yaml in src/) now resolve correctly. Previously only the project root was probed, causing "OpenAPI spec not found" errors. The error message now lists all probed locations when neither has the file.
  3. Removed build-time OIDC registration from the Vite plugin — the OIDC token minting and .env write path has been moved to the CLI deploy command. The Vite plugin no longer writes HOLOCRON_KEY or HOLOCRON_BRANCH to .env during build. Deploy authentication is now fully handled by holocron deploy.
  4. Bumped spiceflow peer dep to >=1.25.1-rsc.0 — fixes deploy failures where the SSR entry wasn't nested inside the RSC output directory, causing "deployment must include worker/ssr/index.js" errors.

@holocron.so/vite@0.6.0

  1. Self-hosted Inter font — the default Inter font is now bundled via @fontsource-variable/inter instead of loading from third-party CDNs (rsms.me, Google Fonts). No external font requests on default config. Google Fonts preconnect tags only appear when you explicitly configure a custom Google font.
  2. OIDC keyless deploys from GitHub Actions — when permissions: id-token: write is set, the Vite plugin automatically mints a GitHub OIDC token and registers the deployment without any secret configuration:
    # No HOLOCRON_KEY secret needed permissions: id-token: write steps: - run: npx holocron deploy
  3. Prism excluded from SSR — syntax highlighting now runs client-only via a #prism conditional import. SSR/RSC get a noop stub, then the client adds highlighting during hydration. Reduces SSR bundle by ~500KB and avoids the CJS global crash in Dynamic Workers.
  4. Stable dependency code splitting — framework and vendor code is grouped into a single holocron-stable chunk in the RSC build. The entry chunk shrinks to ~20KB of virtual modules, while the stable chunk stays content-addressable across deploys for maximum KV dedup.
  5. listen() guard moved to renderChunk — the auto-start listen() call is now appended to the final RSC entry chunk after bundling, keeping import.meta.url correct even when code splitting moves framework code into dependency chunks.
  6. Dynamic Workers createRequire fixcreateRequire(import.meta.url) calls in bundled CJS helpers are replaced at build time when HOLOCRON_DEPLOY=1, preventing module evaluation crashes in Dynamic Workers.
  7. Auto-inject Cloudflare plugin — when HOLOCRON_DEPLOY=1 is set (by holocron deploy), @cloudflare/vite-plugin is auto-injected. Users don't need it in their vite.config.ts.
  8. Headings with inline code — headings like ### `config` now appear correctly in the sidebar and table of contents instead of showing as empty entries.
  9. Empty headings filtered — headings with no text content are dropped from the sidebar TOC and right-side table of contents instead of rendering as blank items.
  10. User entry exports preserved — custom spiceflow entries now re-export all named exports alongside app and default.
  11. yaml browser entry alias — the yaml package is aliased to its browser entry at build time, fixing resolution issues in the browser bundle.
  12. @cloudflare/vite-plugin optional peer dependency — added as optional so pnpm install doesn't warn when deploying to non-Cloudflare targets.

@holocron.so/cli@0.10.0

  1. New holocron deploy command — build and deploy your docs site to holocron.so with a single command. Content-addressable uploads skip unchanged files across deploys:
    holocron deploy
    • Auto-detects branch from git, GitHub Actions, or --branch flag
    • Zip-batched parallel uploads with progress reporting
    • SHA-256 content hashing; only new/changed files are uploaded
    • Auto-sets holocron_url and holocron_deployment_id as GitHub Actions step outputs
    • Reads project name from docs.json and syncs it server-side
    • Supports --skip-build to deploy an existing dist/
    • Auth via HOLOCRON_KEY env var or holocron login session
  2. Multi-environment auth — CLI now stores session tokens keyed by server URL, so you can be logged into production and preview simultaneously:
    holocron login # logs into holocron.so holocron --api-url https://preview.holocron.so login # separate session holocron whoami # shows current server's user
  3. Global --api-url flag — all commands now respect a top-level --api-url option instead of per-command -u/--url flags.
  4. Improved create command UX — reuses existing login session instead of re-authenticating, appends -docs to the generated folder name, and skips the "start dev server?" prompt when dependencies weren't installed.
  5. Colored CLI output — all commands use a centralized logger with color-coded status icons for better readability.
  6. Non-TTY safetyholocron login fails fast with a clear message in non-interactive environments instead of hanging on stdin.

@holocron.so/vite@0.5.0

  1. Decorative grid lines — configurable vertical lines with dot ornaments at intersections. Set decorativeLines in your config to "none", "lines", "dashed", or "lines-with-dots" (default):
    { "decorativeLines": "dashed" }
  2. Per-page CDN caching via frontmatter — set cache-control in page frontmatter to control HTTP caching headers per page:
    --- title: My Page cache-control: public, max-age=3600 ---
  3. ?raw imports in MDX modules — MDX files can now import raw text content from other files using Vite's ?raw query suffix.
  4. docs.jsonc config discovery — Holocron discovers config files in Mintlify-first order: docs.json, docs.jsonc, then holocron.jsonc. JSONC comments and trailing commas work without renaming your Mintlify config.
  5. holocron CLI bundled with vite package — installing @holocron.so/vite now also provides the holocron CLI command. No separate @holocron.so/cli install needed.
  6. Deploy with just HOLOCRON_KEY — deployment registration now only needs HOLOCRON_KEY (removed HOLOCRON_PROJECT). The project is resolved from the key server-side.
  7. Generated entry guards listen() with import.meta.main — the built dist/rsc/index.js can now be imported by another framework (e.g. Next.js catch-all route) without starting a second server.
  8. OG images and logos served from holocron.so — OG image rendering and logo generation moved to a dedicated Cloudflare Worker, dropping ~5 MiB from the vite plugin bundle.
  9. Sidebar nav animations disabled by default — sidebar expand/collapse transitions are off by default, gated behind a .sidebar-animate CSS class.
  10. Config types and schema exported from index@holocron.so/vite now exports config types and the JSON schema for programmatic config validation.
  11. Darker dark mode — dark mode background darkened from 0.21 to 0.16 oklch lightness for better contrast.
  12. Fixed TOC heading highlight — same-hash re-click and scrollbar drag edge cases now correctly update the active heading.
  13. Fixed sidebar heading click — clicking a heading in the sidebar now highlights correctly after scroll.
  14. Fixed page overflow — decorative grid dots no longer extend below the content container.
  15. Fixed title injection — pages that already start with any heading level are left untouched.
  16. Tab link and scrollbar polish — removed lowercase transform, fixed indicator height, thinner scrollbar thumbs, softer light mode borders.

@holocron.so/cli@0.9.0

  1. New holocron create command — scaffold a new docs project from a starter template with interactive setup. Optionally connects to holocron.so for AI chat and analytics:
    holocron create my-docs --name "My Docs"
    Non-interactive mode supported for CI/agent use. The scaffold includes docs.json, MDX pages, vite.config.ts, and .env with your API key.
  2. New projects list and projects create commands — manage projects for your org:
    holocron projects create --name "My Docs" holocron projects list
  3. API keys are now project-scoped — each key is tied to a project. The key alone identifies which project a deployment belongs to, so HOLOCRON_PROJECT is no longer needed. Just set HOLOCRON_KEY:
    holocron keys create --name production --project <projectId>
  4. Renamed HOLOCRON_API_KEY to HOLOCRON_KEY — shorter env var name. Update your .env and CI secrets.
  5. Simplified API routes — the CLI no longer manages org IDs client-side. Org resolution and auto-creation happen server-side.
  6. docs.jsonc config support — the scaffold now outputs docs.json with a $schema URL pointing to the published npm package for IDE autocomplete.

@holocron.so/vite@0.4.0

  1. Agent discovery endpoints for every docs site: Holocron now serves the well-known agent-skills discovery files automatically so coding agents can discover and install a docs-specific skill:
    /.well-known/agent-skills/index.json /.well-known/agent-skills/{name}/SKILL.md /.well-known/skills/index.json /.well-known/skills/{name}/SKILL.md
    The generated skill points agents at /sitemap.xml, raw .md page URLs, and /docs.zip. Base-path deployments use relative URLs, and AI-user-agent redirects skip the well-known routes so JSON discovery stays machine-readable.
  2. Added /llms.txt: every docs site now exposes a standard agent entry point that links to /docs.zip first, then individual raw markdown pages:
    https://docs.example.com/llms.txt
  3. Imported MDX and Markdown snippets: MDX pages can import local .mdx and .md snippets, including files outside the docs root, and Holocron resolves them through the same safe-mdx rendering pipeline as normal pages:
    import Intro from './snippets/intro.mdx' import Readme from '../../README.md' <Intro /> <Readme />
  4. Added Mintlify-compatible <Visibility>: docs can render content only for humans or only for agent-facing markdown output:
    <Visibility for="humans"> This appears on the website. </Visibility> <Visibility for="agents"> This appears in `.md` routes and docs.zip. </Visibility>
  5. More Mintlify-compatible MDX components: callouts, badges, cards, expandables, frames, tooltips, trees, accordions, and tabs accept more Mintlify props without requiring docs rewrites.
  6. HTML <details> support: copied docs that use native HTML details/summary blocks are normalized into Holocron's existing Expandable component.
  7. GitHub-style callout quotes: Markdown alerts like > [!NOTE], > [!TIP], and > [!WARNING] now render as Holocron callouts.
  8. Search shortcut changed to Cmd/Ctrl+K: docs search now uses the standard docs-site shortcut.
  9. Page-level grid gap overrides: pages can override the editorial grid gap through frontmatter, and generated OpenAPI pages use tighter spacing automatically.
  10. Client-side routing is used consistently: navigation links, configured links, footer links, MDX links, and TOC hash links now go through Spiceflow Link where appropriate.
  11. Docs chat uses the hosted typed API: chat requests go through the hosted Holocron API, with preserved model history for tool calls and local-development support for inline docs content.
  12. Temporary AI fallback for previews: preview docs can use a low-cost temporary model when no Holocron API key is configured.
  13. New docs pages hot-reload in dev: adding Markdown or MDX files now refreshes navigation without needing a server restart.
  14. Better code highlighting for MDX snippets: mdx fences now reuse Prism's Markdown grammar so nested fenced code blocks inside MDX examples get syntax highlighting.
  15. Smaller server bundles for Mermaid sites: Mermaid is resolved through an SSR stub and loaded only in the browser, reducing the SSR bundle for the real-world Polar fixture from about 7.55 MiB to 2.17 MiB.
  16. Cleaner build output for Mermaid: Mermaid's dynamic diagram dependencies are grouped into one lazy chunk instead of dozens of tiny files.
  17. Table and layout polish: Markdown tables use lighter row dividers, stay inside the content column, and preserve visible borders.
  18. Sidebar and scrollbar polish: navigation spacing, scrollbar thumbs, page breathing room, and border contrast were tuned for better readability in light and dark mode.
  19. Fixed sidebar hydration state: sidebars now use loader-provided route state for the first render, preventing hydration mismatches on non-default tabs.
  20. Fixed active TOC tracking: the active heading now updates when a section reaches the top reading position instead of using the viewport center.

@holocron.so/vite@0.3.0

  1. OpenAPI auto-generated API reference pages — add "openapi": "spec.yaml" to any navigation tab and Holocron processes the spec at build time, extracts all operations grouped by tag, and generates virtual pages with full endpoint documentation:
    { "navigation": { "tabs": [ { "tab": "Docs", "pages": ["index"] }, { "tab": "API Reference", "openapi": "openapi.yaml" } ] } }
    Each endpoint page includes parameter tables, request/response bodies with JSON Schema types, cURL examples in a sticky right sidebar, and response code expandables.
  2. Configurable openapiBase slug prefix — control the URL prefix for generated OpenAPI pages (defaults to "api"). Set to "" for no prefix:
    { "tab": "API", "openapi": "spec.yaml", "openapiBase": "reference" }
  3. Mermaid dark mode — diagrams now re-render with the correct theme when toggling dark/light mode.
  4. Auto-inject H1 from frontmatter title — pages with a frontmatter title but no H1 in the body get a heading injected automatically.
  5. Typography and layout refinements — uniform 16px heading sizes, narrower content column for better readability, sidebar uses text-sm instead of text-xs.
  6. Tabs component restyled — uses bg-accent for cleaner tab panels.
  7. OpenAPI field styling — divider lines between fields, copy button on request examples, Mintlify-style rounded CodeCard containers.
  8. Fixed @tailwindcss/vite and tailwindcss as dependencies — were incorrectly in devDependencies causing missing styles in production.
  9. Fixed OpenAPI active tab matching and H1 filtering from TOC.

@holocron.so/vite@0.2.0

  1. MDX import support — import components from anywhere in your project using standard MDX import syntax. Components are discovered at build time and resolved at render time.
  2. Auto-detect user global CSS — Holocron automatically discovers and loads user global CSS files for smoother Mintlify migration.
  3. AI Assistant control — new assistant.enabled config field to disable the AI chat widget.
  4. Default icon library switched from Lucide to FontAwesome — use explicit lucide:icon-name syntax to keep using Lucide icons.
  5. Wider content column with flexible grid — tables and tabs now bleed properly with min-width 150px on table cells and horizontal scroll.
  6. H3 headings now use the same foreground color as h1/h2.
  7. Unified vertical spacing — Steps, lists, and containers now all use the --prose-gap token.
  8. Component rename: <Hero><Above> — update your MDX files if you use Hero directly.
  9. Fixed phantom 48px gap from empty first section in the editorial page grid.
  10. Fixed imported components inside <Above> — components in this section now render correctly.
  11. Fixed sticky sidebar — sidebar sticks below navbar even without a tab bar.
  12. Fixed active TOC tracking — improved heading highlight with 50% viewport threshold + hash change detection.
  13. Fixed heading text rendering — heading text no longer wrapped in prose-styled <p> element.
  14. Fixed callout content — no longer split incorrectly during MDX serialization.
  15. Fixed spiceflow dual-instance crash — deduplicated @types/node dependency.
  16. Chat/AI fixes — stale text, textarea preservation, store/hook boundary fixes.
  17. Scrollbar gutter preventionscrollbar-gutter: stable prevents layout shift.
  18. Performance — shared pre-parsed mdast between module resolution and page rendering.
  19. Improved sidebar link contrast — opacity increased from 0.45 to 0.65.
  20. Fixed implicit "Docs" tab visibility — works correctly with versions + anchors.
  21. Fixed nested index slugs — loader titles resolve for nested directory pages.
  22. Fixed tab indicator height and zustand import path.

@holocron.so/cli@0.6.0

  1. New login, logout, whoami commands — authenticate with holocron.so via BetterAuth device flow. The CLI opens your browser, you approve, and the session token is saved locally:
    holocron login holocron whoami holocron logout
  2. New keys create, keys list, keys delete commands — manage API keys for deploying docs sites. Keys are scoped to your org and can authenticate the hosted AI proxy via HOLOCRON_API_KEY:
    holocron keys create --name production holocron keys list holocron keys delete <keyId>
  3. Typed API client — all API calls go through spiceflow/client with types auto-derived from the website routes and safe error handling via errore patterns.

@holocron.so/vite@0.1.0

Initial release — drop-in Mintlify replacement as a Vite plugin.
  1. Full Mintlify-compatible docs site from MDX — reads docs.json (or holocron.jsonc) for navigation, tabs, groups, anchors, redirects, footer, banner, fonts, colors, SEO metadata, and favicon. Renders MDX pages with editorial typography, code blocks (Prism with all languages), callouts, tables, accordions, expandable fields, cards, steps, frames, panels, badges, tooltips, and more.
  2. React Server Components on Vite 8 — powered by spiceflow. Server-rendered pages with full client hydration, client-side navigation, and per-page loaders.
  3. Navigation with tabs, versions, and dropdownsnavigation.tabs for switching sidebar content, navigation.versions for a version selector dropdown, and navigation.dropdowns (or navigation.products) for product-scoped navigation. Each switcher owns its own inner tab/group tree.
  4. Custom entry point support — mount holocron as a child of your own spiceflow app:
    import { createHolocronApp } from '@holocron.so/vite/app' const holocronApp = await createHolocronApp() const app = new Spiceflow().use(holocronApp)
  5. HMR for config and MDX — editing MDX content, adding/removing pages, and changing docs.json all hot-reload without a full page refresh.
  6. AI agent support — serves raw markdown at /<page>.md URLs, redirects AI user-agents to .md endpoints, exposes /sitemap.xml with .md hints, and bundles all docs as /docs.zip.
  7. Built-in icon atlas — resolves Lucide and Font Awesome icons at build time. Icons render inline as SVGs inheriting currentColor. Supports emoji, URL, and structured { name, library } icon objects.
  8. Image processing with pixelated placeholders — local images get dimensions + compact WebP placeholders at build time. Blur-to-sharp transition and click-to-zoom via react-medium-image-zoom.
  9. OG image generation — auto-generates Open Graph PNG images per page using Takumi.
  10. Generated fallback logo — text-based logo PNG using Bagnard font, with light and dark variants.
  11. Sidebar search — Orama full-text index with keyboard navigation and wrap-around.
  12. Dark mode — class-based with cookie persistence and a blocking theme script (no flash). OS preference fallback.
  13. CSS @layer holocron — all styles wrapped in a CSS layer. Uses shadcn v2 CSS variable convention for full theme customization.
  14. Redirects — exact match, named parameters (:id), trailing wildcards (*). Query strings preserved. 301 status.
  15. Base path support — mount docs under a subpath like /docs.
  16. Footer with socials — logo, social icons, up to 4 link columns.
  17. Banner — dismissible top banner with MDX content and configurable colors.
  18. Custom virtual modules — override virtual:holocron-config and virtual:holocron-pages for programmatic control.
  19. Sticky per-section asides<Aside> scoped to its section, <Aside full> spans multiple sections. RequestExample/ResponseExample auto-widen the sidebar.
  20. 404 page — styled 404 inside the editorial layout with missing path, link home, and noindex meta.

@holocron.so/cli@0.3.2

Patch Changes

  • export holocronjsonc type

@holocron.so/cli@0.3.1

Patch Changes

  • fix double api api in client
This changelog is generated automatically from the GitHub releases page.