Choose a framework
Next.js App Router is the default for new projects. Select another framework during setup:
Current adapter ranges depend on the version of
fimo installed in your project. Run fimo validate before changing
framework versions.Connect an existing application
From the application directory, run:Framework guides
React Router
Vite with React
Astro
Next.js
SvelteKit
Agent best practices
The bundledfimo-code skill includes focused performance guidance for public
Astro, SvelteKit, and Next.js sites. Coding agents should load the integration
reference first, then the matching best-practices reference:
Shared project contract
Set the application’s production profile in.fimo/config.json:
astro, nextjs, nuxtjs, react-router, remix,
sveltekit, vite, and vue. Conventional projects use their package
scripts and framework defaults. Override commands only when the existing
application needs them:
routes block is Studio’s page catalog, not production routing.
Framework routes and provider-owned deployment configuration remain
authoritative.
New framework shells are locale-ready by default. They declare locale placement
in the route catalog with the reserved :locale segment and
params.locale.optional: true, while each framework’s own route files remain
the source of truth. React Router framework mode and native Vite use :locale?;
Astro, Next.js, and SvelteKit use their native route-boundary patterns. The
default locale stays unprefixed, and existing applications keep their current
URL strategy.
In a linked checkout, Astro, SvelteKit, React Router, and Vite derive the
current Branch’s runtime aliases during development and production builds.
Next.js resolves the linked project and active Git branch in its root
FimoProvider, then passes only the public connection to the browser. Explicit
server overrides still take precedence.
Package surfaces
The component vocabulary stays value-first across frameworks:
<Text value={article.title} as="h1" />, <Image value={article.cover} />, and <RichText value={article.body} />.
<Date> and <DateTime> both render a <time> element and are available in
all four surfaces. Use <Date> for a date field, where the datetime
attribute is the calendar day, and <DateTime> for a datetime field, where it
is the full ISO instant.
Update Fimo packages
Keepfimo and its framework packages on the same exact version. Do not edit their versions directly in package.json. Run the latest CLI with the exact target version:
--dry-run to inspect without changing anything, or --apply to run non-interactively. The command needs a clean git working tree, installs with your project’s package manager, runs fimo validate afterwards, and never commits, deploys, or publishes on its own.
The update adds missing framework packages before it rewrites imports. For
example, a Next.js project missing fimo-next receives fimo-next and
fimo-react at the target version before fimo/next imports move to
fimo-next.
React and Next.js projects pinned to a release from before framework packages
were split remain supported. The current CLI generates content clients against
their existing fimo/ui or fimo/next runtime, without installing
fimo-react or fimo-next or changing the project’s Fimo version. The
companion becomes required only after you update to a release that uses the
split packages.
Compatibility
The framework profile selects the integration; it does not promise every historical framework version. Current package ranges and tested baselines are:
Nuxt, Remix, and Vue currently have hosting detection only; they do not yet
have a Fimo content/runtime adapter.
What’s next
Content & CMS
Declare schemas and use generated content clients.
Locales
Connect Fimo to the application’s locale policy.
Deploy & publish
Preview the application and publish it.