Skip to main content

Docusaurus 3.10

· 5 min read
Sébastien Lorber
Docusaurus maintainer, This Week In React editor

We are happy to announce Docusaurus 3.10.

Upgrading is easy. We follow Semantic Versioning, and minor version updates have no breaking changes, accordingly to our release process.

Docusaurus blog post social card

Changelog TODO temp

yarn changelog --from v3.9.2

generated on Mar 20, 2026 from this commit: https://github.com/facebook/docusaurus/commit/6192b6a97925a8ea36e6dfa9c6082dabc0ac89ea

Security

There has been a surge in npm supply chain attacks. A single compromised maintainer or package can impact thousands of downstream users.

To reduce this risk, we hardened our publishing pipeline. We adopted npm Trusted Publishing for both stable (#11819) and canary releases (#11712). We also mitigated cache poisoning risks in the publish process (#11795).

All releases now go through a single publish.yml GitHub Actions workflow using short-lived OIDC tokens. Previously, releases were published from a maintainer’s machine with long-lived tokens.

This greatly reduces the risk of shipping compromised packages. Each release now has verifiable provenance, with a transparency log showing how and when it was published.

npm trusted publishing checkmark displayed under the version

npm trusted publishing checkmark displayed under the version

Docusaurus Faster stable

  • #11802 feat(core): Docusaurus Faster is stable + v4 future flag turns it on by default
  • mention VCS Eager strategy

Site Storage stable

  • #11797 feat(core): promote siteConfig.storage to stable + add future.v4.siteStorageNamespacing flag

MDX Heading Ids

  • #11777 feat(cli): write-heading-ids CLI now supports the --syntax option
  • #11755 feat(mdx-loader): add support for explicit headingId based on MD/MDX comments
  • #11779 chore(website): migrate MDX heading ids to comment syntax + upgrade Crowdin parser version (@slorber)

Experimental VCS API

  • #11512 feat(core): New siteConfig future.experimental_vcs API + future.experimental_faster.gitEagerVcs flag (@slorber)
  • #11804 fix(utils): Git Eager VSC should have better DX (@slorber)

Translations

  • 🇵🇰 #11632 Add new Urdu ur theme translations.
  • 🇧🇷 #11533: Complete missing Brazilian Portuguese pt-BR theme translations.

Other changes

Other notable changes include:

  • In #11571, the siteConfig.headTags API now accepts custom HTML elements.
  • In #11675, the live code block theme now has a button to reset the playground
  • In #11734, we split the <DocCard> component to make it easier to extend/swizzle. It's now easier to use assign custom emojis for the docs generated index page.
  • In #11733, the <Tabs> component now uses React context instead of props, making it possible to create custom <TabItem> components.
  • In #11696, all newly initialized TypeScript sites will have "strict: true" by default.
  • In #11611, we made it possible to create a new Docusaurus site in ., the current directory.
  • In #11666, the pages plugin can now use Markdown file path links ([text](./other-page.md), as the docs and blog plugin already support it.
  • In #11642, admonitions now class/id shortcuts, such as :::note{.my-class #my-id}.
  • In #11541 and #11683, we made sure Docusaurus is compatible with the latest version of Algolia DocSearch 4.x, unlocking new features such as AskAI Suggested Questions.
  • In #11684 and #11653, we removed
  • In #11794, we fixed a long-standing bug that prevented the translation of category index page titles in pagination links. many third-party dependencies from our create-docusaurus CLI, making it faster to create a new site.
  • In #11784, we changed the syntax we recommend for math equations, preferring regular Markdown code blocks over $$ to improve docs portability.
  • In #11753, we added a basic AGENTS.md file. Let's remind that any AI usage on Docusaurus contribution must be disclosed.
  • In #11698, we upgraded our monorepo to React 19. We'll drop support for React 18 in Docusaurus v4.

TODO + edit changelog link!

Check the 3.10.0 changelog entry for an exhaustive list of changes.