Skip to main content
Fimo can create a new project with React Router, Vite, Astro, Next.js, or SvelteKit. It can also host other applications when you provide a build command and output directory.

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:
Fimo keeps your framework, routes, and Git history. If the framework needs a Fimo build hook, the command tells you which configuration line to add. Your application continues to own routing, locale URLs, links, and page-level SEO. Fimo supplies the content and editing tools that its adapter supports.

Framework guides

React Router

Vite with React

Astro

Next.js

SvelteKit

Agent best practices

The bundled fimo-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:
These references cover server-rendered content, request waterfalls, client JavaScript, dynamic-route 404s, canonical URLs, and framework-specific build or navigation optimizations. They do not replace the framework integration contract.

Shared project contract

Set the application’s production profile in .fimo/config.json:
Supported values are 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:
The optional 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

Keep fimo 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:
It shows the plan first — the package pins, the companion packages your framework needs, any import rewrites, and that release’s breaking changes — and only writes after you confirm. Add --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.