
Security News
upm Launches as a Fast, Tiny Package Manager Written in TypeScript
upm uses Node.js to deliver fast npm installs in about 250 KB, with a JavaScript API and security defaults.
@usefillo/react
Advanced tools
Headless React components for embedding Fillo forms natively in your product.
Docs · Guides · Examples · Changelog
React components and hooks for embedding Fillo forms natively inside your product — rendered in your own DOM, with your styles, on your route. No iframe.
npm i @usefillo/react
react and react-dom (18 or 19) are peer dependencies.
The default stylesheet inherits the host page's CSS color-scheme and font. If your theme provider only toggles a class or data attribute, pass its resolved mode as theme={{ colorScheme: "light" | "dark" }}. Use "auto" only for a deliberately system-driven page. A fixed hex background automatically selects a readable palette unless you explicitly choose one.
"use client";
import { Fillo, when, createClient } from "@usefillo/react";
import "@usefillo/react/styles.css"; // optional default theme — or bring your own
const client = createClient({ key: process.env.NEXT_PUBLIC_FILLO_KEY });
export function ContactForm() {
return (
<Fillo.Form id="contact" title="Talk to us" client={client}>
<Fillo.Text id="name" label="Your name" required />
<Fillo.Email id="email" label="Work email" required />
<Fillo.Select id="topic" label="Topic" required>
<Fillo.Option id="sales" label="Sales" />
<Fillo.Option id="support" label="Support" />
</Fillo.Select>
<Fillo.LongText id="message" label="How can we help?"
visibleIf={when("topic").eq("support")} />
</Fillo.Form>
);
}
The first time this runs, the form appears in your Fillo workspace as a draft —
publish it there and responses, exports, webhooks, and integrations all work.
Prefer config over JSX? defineForm({ id, pages }) is first-class — JSX
compiles to it exactly. Authoring guide:
fillo.so/docs/authoring.
import { FilloForm } from "@usefillo/react";
<FilloForm formId="cust-feedback" onSubmitted={(r) => confetti()} />
<Fillo.Form
id="contact"
client={client}
appearance={{
theme: { primary: "#4f46e5", radius: "12px" }, // also themes your hosted page
classNames: {
control: "rounded-xl border-zinc-200 data-[invalid]:border-red-400",
option: "rounded-lg border p-3 data-[selected]:border-indigo-600",
button: (s) => (s.variant === "primary" ? "bg-indigo-600 text-white" : ""),
},
fields: { nps: { control: "grid grid-cols-11 gap-1" } },
}}
>
Every rendered part carries a named slot and state attributes
(data-invalid, data-selected, …), and the default stylesheet is
cascade-layered so your utilities always win. Styling contract:
fillo.so/docs/styling.
Every part is replaceable — and every embed method is free:
components / customComponents — swap any field kind for your own<FilloProvider> + <FormField> / useField() — your layout, Fillo's engineuseFilloController() — the bare engine for total controlHeadless guide: fillo.so/docs/custom-ui.
MIT licensed.
FAQs
Headless React components for embedding Fillo forms natively in your product.
The npm package @usefillo/react receives a total of 419 weekly downloads. As such, @usefillo/react popularity was classified as not popular.
We found that @usefillo/react demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
upm uses Node.js to deliver fast npm installs in about 250 KB, with a JavaScript API and security defaults.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.