Branding a Fillo form comes down to two things: the form's own title and copy, plus either renderer theme tokens or a layout your application owns.
In the dashboard
Use the editor for the form title, description, field copy, and completion message. These values travel with the published schema and appear on the hosted page and the default SDK renderer.
The dashboard doesn't currently have a per-form logo upload or a custom link-preview image. The badge switch is workspace-wide, in Settings → Billing & plan.
In code
Pass a theme to the renderer or keep it beside a code-defined form:
const feedback = defineForm({
id: "feedback",
theme: {
primary: "#2563eb",
background: "#ffffff",
text: "#172033",
radius: "12px",
fontFamily: "inherit",
},
pages: [{
id: "main",
blocks: [{ id: "feedback", kind: "long_text", label: "What should we improve?" }],
}],
});
<FilloForm form={feedback} client={client} />For closer control, use the appearance prop with Tailwind classes, stable CSS slots, custom field renderers, or a fully headless FilloProvider layout.
Powered by Fillo
The small Powered by Fillo badge shows on Fillo-rendered forms, embedded and hosted. On Free it's always visible. The Everything plan, at any volume, unlocks a workspace checkbox in Settings → Billing & plan that hides it everywhere Fillo renders. The badge stays on until you turn it off.
A workspace owner or admin subscribes to Everything in Settings → Billing & plan. If the subscription ends, the workspace returns to Free and the badge comes back.
Once the workspace is on Everything, a coding agent acting for an owner or admin can flip the switch too: fillo branding off in the CLI, or fillo_set_branding over MCP. It can report the plan with fillo billing or fillo_get_billing, but no agent can subscribe.
Headless composition renders no Fillo layout, so there's no badge to place. It's available on every plan, Free included — and it means your application owns the complete visual and accessibility implementation.
Hosted preview metadata
Hosted pages use Fillo's route and form metadata. Custom per-form Open Graph images and hosted-page logo placement aren't currently configurable. If the surrounding page, header, and share metadata need to come from your product system, embed the form in a route you own.
Related
- Styling: Use theme tokens, Tailwind appearance slots, or plain CSS.
- Custom UI: Own the layout while keeping Fillo's form engine.
- Custom domains: Put the native renderer on a route under your domain.