Formidable · Open source · MIT

Most forms get in the way. Formidable gets out of it.

Formidable is xfunc's open-source form layer for Blazor applications: free, tested and already at work on real client forms.

The Formidable demo after a submit: an error that blocks it and a warning that doesn't are listed at the top, and the fields already filled in correctly are outlined in green.

Why I built it

You've met these forms. They tell you you're wrong before you've finished typing. They make you hunt for what's wrong. They wait until the last step to ask for something you don't have to hand, then won't let you save, so you start again.

In my experience, most forms end up that way because the tools make it the easy path, not because anyone wanted it. I care about the person on the other side of the form. Formidable is the validation layer I kept wishing existed: published as an open-source library anyone can use, and covered by tests.

It's already at work on a real client's forms, and the live demo, the code, the tests and the documentation are all public.

Tim Schneider, principal

What your users get

Messages when they help, not before

A field nobody has touched stays quiet. Once someone has engaged with it, it says what would actually stop the save.

Save now, finish later

A lenient draft saves what's there so far; the full checks run at submit. Someone missing one document can save and come back.

Every problem in one place

At submit, a summary lists what needs fixing, based on what is on screen at the time.

No surprises at the end

The same rules run in the browser and on the server, so a rejected save points at the exact field instead of a generic error.

Long lists that keep track

Add, remove or reorder rows, and every message stays with the row it belongs to.

Built the way we build for clients

Formidable came out of a real Blazor engagement. If you need a form-heavy business application built, and left behind with tests, documentation and a codebase your team can run, that is what we do.

Adelaide-based, working across Australia.

For developers

Building forms in Blazor yourself? Formidable is free and MIT-licensed. Your FluentValidation validators, all the way to the browser: Draft and Submit profiles, progressive disclosure, row-stable collections, and one wire format shared by client and server. Try the demo, read the docs, open an issue. Let's make better forms.

Packages

Your models and validators reference Formidable only. A Blazor client adds Formidable.Blazor; an API adds Formidable.AspNetCore. Neither depends on the other.

FormidableDepends on: FluentValidation + Microsoft.Extensions.DependencyInjection.AbstractionsValidation profiles, ProfiledValidator<T> and DraftSubmitValidator<T>, the IModelValidator seam, ValidationIssue and ValidationReport, model introspection. No Blazor dependency.
Formidable.BlazorDepends on: Formidable + Microsoft.AspNetCore.Components.WebThe validation engine (EditContext integration, field registry, validation flows) and the headless component kit.
Formidable.AspNetCoreDepends on: Formidable + ASP.NET CoreA minimal-API endpoint filter and an MVC [Validate] action filter, returning ValidationProblemDetails in the path format the Blazor client consumes.
dotnet add package Formidable.Blazor

The quickstart, the concepts and the full reference are in the documentation.

Read the story behind it →