The flow
1
Write the form JSON
Create
src/forms/{name}.json — kebab-case filename, e.g. contact-us.json — with the fields you need.2
Register it
id, and patches it back into the JSON file. Register before writing app code that depends on the form, or the generated client won’t exist and the runtime fetch 404s.3
Render it
A pre-build step generates
src/forms/contact-us.ts (a Zod schema + a submitContactUs helper). Import from @/forms/contact-us in your React component.Form commands
The form JSON spec, the generated Zod schema, and the
submitX helper signature are part of the project’s fimo package surface. Load the project fimo skill before writing form JSON or the React component. Notification recipients are configured in Fimo Studio, not the CLI.Read submissions
Once the form is live and people have filled it out, inspect submissions from the terminal:<formIdOrName> accepts the form’s UUID or its name. list returns newest-first by default; search matches submission contents server-side. All three are read-only — submissions are created only when a visitor submits the published site’s form. For bulk export or older submissions, use Studio.
What’s next
Content & CMS
Model structured content.
Labels, locales & i18n
Localize form copy with
t().Deploy & publish
Ship the form to production.