@formloom/client gives end-to-end TypeScript types from your field schema to the submission payload.
ts
import { createForm } from "@formloom/client";
type Contact = { name: string; email: string; message: string };
const form = createForm<Contact>("YOUR_ACCESS_KEY");
const { success, message } = await form.submit({
name: "Ada", email: "ada@x.dev", message: "Hi",
});React hook
tsx
import { useFormLoom } from "@formloom/client/react";
function ContactForm() {
const { submit, status } = useFormLoom("YOUR_ACCESS_KEY");
return <form onSubmit={submit}>…</form>;
}