This is a meta issue to gather information about the upcoming Docusaurus v4 release.
This comment will be updated regularly as we progress toward v4.
If you have opinions on breaking changes and dependency upgrades we should focus on, please let us know.
Apart from that, I'd like to keep the release relatively small, to make it easy to adopt, and to not delay it more than needed.
Top Priority changes
These are the changes we really want for v4. The list is already quite long, so I'm likely to migrate some items to optional changes.
Dependency upgrades:
Behaviors:
Also: handle all the // TODO Docusaurus v4 comments in code
Optional changes
These are the changes we'd like to have for v4, but if they are too complicated, difficult to implement, or too disruptive for users, we may postpone them to another major version.
- Deprecate
algolia.themeConfig in favor of plugin/preset options?
- v4.0 milestone contains various fixes/upgrades requiring breaking changes or version upgrades
- Babel 8 for Docusaurus Slower?
- Deprecate
getSwizzleComponentList in favor of getSwizzleConfig
- Truncate blog markdown loader with AST/remark instead of String split regexp
.md parsed as CommonMark by default?
- Internalize and shrink down Infima
- Chokidar v4? or migrate to Parcel watcher like many others?
- Commander v12?
Rejected changes
This is a meta issue to gather information about the upcoming Docusaurus v4 release.
This comment will be updated regularly as we progress toward v4.
If you have opinions on breaking changes and dependency upgrades we should focus on, please let us know.
Apart from that, I'd like to keep the release relatively small, to make it easy to adopt, and to not delay it more than needed.
Top Priority changes
These are the changes we really want for v4. The list is already quite long, so I'm likely to migrate some items to optional changes.
Dependency upgrades:
@11ty/gray-matterv2 #12182)sharp, fix Argos/Playwright #12188)@rspack/dev-server@rspack/plugin-react-refreshnode.utils.styleText()#12405)Behaviors:
experimental_fasteris now stable and enabled by default. It remains possible to opt out webpack/slower tools.experimental_storageis now stable and uses namespacing by default, with the ability to out-out.baseline widely availableby defaultRegExp.escape--bundle-analyzeroption, it shouldn't be in core and could be a pluginrespectPrefersColorSchemeby defaultconfigureWebpack(...args)in favor ofconfigureBundler({params}), upgrade webpack-mergeAlso: handle all the
// TODO Docusaurus v4comments in codeOptional changes
These are the changes we'd like to have for v4, but if they are too complicated, difficult to implement, or too disruptive for users, we may postpone them to another major version.
algolia.themeConfigin favor of plugin/preset options?getSwizzleComponentListin favor ofgetSwizzleConfig.mdparsed as CommonMark by default?Rejected changes
react-helmet-async v3+ (v3.0.0 — React 19 support, TypeScript cleanup, switch to pnpm staylor/react-helmet-async#260): I tried updating, and it didn't work well. For React v19 this lib is a quite useless pass-through. For that reason, we'll stay on my fork that added v19 support. There are alternatives to consider in Support for react 19 staylor/react-helmet-async#239 (unjs/head and birdofpreyru/react-helmet), but no need to upgrade immediately.
Babel 8 (break: upgrade to Babel v8 #12408): PR has been closed for the reasons mentioned at the top. Not really needed right now, and would lead to a duplicate Babel7/8 version anyway.