fimo-next and fimo-react alongside fimo at the same version:
Configure the runtime
Connect the application
RenderFimoProvider once at the application root. It resolves the connection to your Fimo project on the server, hands only the public connection (tenant content URL, Branch, optional preview script) to the browser, and supplies React Query, labels, and the Studio preview script to everything below it. You do not create, copy, or read Fimo runtime environment variables.
- Locally, the connection comes from the linked project (
.fimo/project.json) and the active git branch, sogit checkoutswitches Branches. - Hosted previews and production builds receive it from the platform.
- To point the app at another host, set
FIMO_CONTENT_API_URL(and optionallyFIMO_ENV); an explicit value always wins over derivation.
withFimo in next.config only adds the hosted preview origins to next dev; it is not the application’s connection.
Generate content clients
Createsrc/schemas/<Uid>.json and run fimo schemas push <Uid>. Fimo generates:
<Uid>.tsfor server reads and serialization;<Uid>.client.tsfor React Query hooks and hydration;<Uid>.types.tsas an internal shared type module;index.tsas the generated content registry.
fimo-next plus generated server modules. Client Components use fimo-next/client plus generated .client.ts modules. Do not import client modules into server-only code.
App Router
Wrap the root layout withFimoProvider from fimo-next. It is a Server Component, so no page, route, or component receives a runtime prop:
.client hooks and useLabels from fimo-next/client under that provider. fimo-next requires @tanstack/react-query as a peer dependency.
FimoProvider also owns the optional Studio preview runtime. Application code does not add a preview bridge, read Fimo preview environment variables, or inject a preview script.
Pages Router
Wrap the root inpages/_app.tsx with FimoProvider from fimo-next/client. Pages Router has no Server Component above _app, so this provider resolves the connection while the server renders _app and writes it into the document for the browser:
getStaticProps and getServerSideProps must return plain JSON. Serialize tracked content before returning props, then hydrate it with the generated client module:
getServerSideProps. Static slug routes list slugs in getStaticPaths and load entries with getBySlug().
Labels and locales
Pass the locale already resolved by the Next.js application into Fimo reads and providers.