Written by
Fuma Nama
At
Wed Oct 22 2025
Fumadocs v16
Better framework support, better performance.
Overview
We are pleased to announce the release of Fumadocs v16, a significant update that introduces breaking changes designed to refine our API surface, improve compatibility with Vite frameworks, and boost overall performance.
Major Changes
Fumadocs 16 removed substantial amount of deprecated APIs accumulated since v15.2 Vite support.
-
Removal of the Sidebar API: The
fumadocs-core/sidebarmodule has been deprecated and removed. For sidebar implementations, we recommend adopting pre-built solutions from Shadcn UI. -
Restructuring of Server-Side Exports: Exports from
fumadocs-core/serverhave been redistributed to more specialized modules:getGithubLastEdit->fumadocs-core/content/github.getTableOfContents->fumadocs-core/content/toc.PageTreeand related utilities ->fumadocs-core/page-tree.TOCItemTypeandTableOfContents->fumadocs-core/toc.- removed
createMetadataImageAPI, use Next.js Metadata API instead.
-
Default Switch to Shiki's JavaScript Regex Engine: To ensure seamless compatibility with environments like Cloudflare Workers, the JavaScript engine is now the default over the WASM-based Oniguruma. This change affects
rehype-code(via theengineoption) andfumadocs-core/highlight. -
Minimum React.js Version Raised to 19.2.0: React 19.2 brings crucial performance improvements to Fumadocs UI.
- Next.js Projects: Next.js projects using Fumadocs UI must use Next.js 16 or later, as Next.js uses its own canary channel for React.js.
-
fumadocs-ui/page:- Removed
<DocsCategory />. - Removed the
breadcrumbs.fulloption in<DocsPage />.
- Removed
-
fumadocs-core/search/algolia: Thedocumentoption is renamed toindexName. -
fumadocs-core/search: Removed the deprecatedcreateFromSource()signature inuseSearch(). -
fumadocs-core/highlight: RemovedwithPrerenderScriptandloadingoptions fromuseShiki(). -
fumadocs-core/i18n: RemovedcreateI18nMiddleware(import fromfumadocs-core/i18n/middlewareinstead). -
fumadocs-core/source:- Removed
transformers,pageTree.attach*options inloader(). - Removed the
page.fileproperty. - Removed internal utilities
FileInfoandparseFilePath.
- Removed
-
Migration to Orama Cloud's New SDK: The
@orama/corepackage replaces the prior client. Update your synchronization code as follows:import { sync } from 'fumadocs-core/search/orama-cloud'; import { OramaCloud } from '@orama/core'; const orama = new OramaCloud({ projectId: '<project id>', apiKey: '<private api key>', }); await sync(orama, { index: '<data source id>', documents: records, });Refer to the Orama Cloud documentation for further details.
Styling Changes
Fumadocs UI has included some aggressive styling changes that you should know about.
-
The default
--fd-layout-widthCSS variable is set to1600pxfor optimal content scaling. You can override it if needed.:root { --fd-layout-width: 100vw; }
Fumadocs MDX 13
Fumadocs MDX refined its API surface for better cross-framework compatability and flexibility.
Plugins API
We introduced Plugins API, enabling extensible modifications to MDX configurations without bundler-specific code—ideal for file generation (e.g., types, indexes) or config alterations.
There's a json-schema plugin natively provided by Fumadocs MDX.
import jsonSchema from 'fumadocs-mdx/plugins/json-schema';
import { defineConfig, defineDocs } from 'fumadocs-mdx/config';
export const docs = defineDocs({
dir: 'content/docs',
});
export default defineConfig({
plugins: [jsonSchema()],
});Bug Fixes
remark-include: fix Markdown stringify logics.postprocess.includeMDASTsupport.- (Vite) support
useContenton client loader for lint avoidance.
Next.js
createMDXSource and resolveFiles are now relocated to fumadocs-mdx/runtime/next.
This should not affect majority of projects, as docs.toFumadocsSource() is now the preferred way.
Vite
The source.generated.ts file is now moved to .source/index.ts, you are recommended to import the .source folder (with a path alias).
{
"compilerOptions": {
"paths": {
"@/.source": [".source"]
}
}
}Migrate:
- run dev server/typegen to generate a
.sourcefolder. - import it over the original
source.generated.ts. - note that both docs and
create-fumadocs-appare updated to.sourcefolder.
We also supported index file generation targeting other runtimes like Bun/Node.js.
import { defineConfig } from 'vite';
import mdx from 'fumadocs-mdx/vite';
import * as MdxConfig from './source.config';
export default defineConfig({
plugins: [
mdx(MdxConfig, {
generateIndexFile: {
runtime: 'node',
},
}),
// ...
],
});Fumadocs OpenAPI 9.6
A redesigned schema UI emphasizes client-side rendering (CSR) for recursive components, reducing bundle sizes and enhancing performance in complex JSON schemas.

Non-required fields now include a reset button, with support for content.showExampleInFields.
What's Next?
Fumadocs v16 is a new start for Fumadocs. We appreciate your feedback and contributions—please share your experiences on GitHub. Thank you for supporing Fumadocs :)