Compatibility
The current adapter targets SvelteKit 2 with Svelte 5. The acceptance fixture uses SvelteKit2.70.2, Svelte 5.56.8, and Vite 8.2.0. SvelteKit 1 and
Svelte 4 are outside the current tested boundary.
Configure the runtime
fimo-sveltekit at the same version as fimo. It carries every SvelteKit surface: content, labels, components, the Vite plugin, and the hosting adapter.
- npm
- Bun
- pnpm
- Yarn
Content and labels
Use SvelteKit serverload functions with the request event:
createFimo the locale your application resolved. If you omit it, Fimo
sends i18n.defaultLocale from .fimo/config.json, and when that is unset the
API answers with your site default.
getLabels follows the same rule: add locale once your application resolves
one, and without it the API answers with your site default, which the
returned snapshot reports as its locale. Fetch labels in the root server layout
and pass the snapshot to FimoProvider. Fimo resolves the injected content API
URL internally; do not import a Fimo environment variable or hardcode a tenant
URL:
fimo-sveltekit/components:
SEO defaults
Resolve SEO in the existing server load and returnseoHead. Preserve the
load’s other data, including labels. A content page resolves after its read:
resolveSeoForPath(event.url.pathname, config, { article }), applies app
overrides, and returns its complete seoHead using toSeoHead.
seoHead replaces the default head as a whole.
Live preview
FimoProvider also owns the optional Studio preview runtime, including script
loading, SvelteKit navigation, and content refresh. Application code does not
need a Fimo server hook, a separate preview component, a preview environment
lookup, or a script tag.
Boundaries
- SvelteKit owns routing, history, 404s, locale URLs, and per-page SEO; the root layout renders Fimo’s site-wide SEO defaults.
- Fimo’s Vite plugin owns development source tagging only.
FimoProviderowns labels and the optional Studio preview bridge.- Do not add React, React Query, or a Vite SPA fallback to SvelteKit.