github fuma-nama/fumadocs cli@16.1.10
create-fumadocs-app@16.1.10

4 hours ago

Replace Orama with ZBSearch, zero-config i18n search

The built-in search engine moved from @orama/orama to ZBSearch, a near drop-in successor. All module paths and APIs are unchanged, and search now works with every language out of the box: the new default multilingual mode uses Unicode word segmentation, so i18n search needs zero config.

import { createFromSource } from 'fumadocs-core/search/server';

// no `localeMap`, no `@orama/tokenizers`, CJK included
export const { GET } = createFromSource(source);

All locales now share a single search database — results are filtered by the locale of your pages at query time. Same for static mode:

import { staticClient } from 'fumadocs-core/search/client/orama-static';

const client = staticClient({ locale });

Renames

  • oramaStaticClientstaticClient (old name kept as deprecated alias)
  • initOramainitDB, it now creates a ZBSearch instance and is optional — the exported data restores the tokenizer on load

Deprecated

  • localeMap is no longer needed. It still works for language-specific stemming/stop-words and keeps the legacy per-locale databases when specified.

Notes for advanced usage

  • language, components, plugins and search options are now typed against ZBSearch instead of @orama/orama — custom tokenizers or plugins written for Orama must be swapped to their ZBSearch equivalents.
  • The exported static search data is now a ZBSearch database (i18n exports became a single unified database), so server and client should be on the same fumadocs-core version.
  • @orama/orama and @orama/tokenizers can be removed from your dependencies unless you use them directly. Orama Cloud integrations (fumadocs-core/search/orama-cloud) are unaffected.

Don't miss a new fumadocs release

NewReleases is sending notifications on new releases.