You own the UI
Define your field types once in your own template — the HTML, the components, the styling. The library handles the wiring.
A schema-driven form engine that handles groups, repeating sections, choices, and validation — so you only write the HTML.
Vue Dynamic Form separates two things that usually get tangled together: what your form looks like and how it behaves.
You describe your form as metadata — a plain object tree that says which fields exist, whether they repeat, whether they're part of a group or a mutually exclusive choice, and what validation rules apply. The library reads that description and takes care of the rest: generating field paths, managing repeating sections, tracking which choice branch is active, and keeping everything in sync with vee-validate.
Your template layer stays completely under your control. You decide which field types your app supports, what extra properties they need, and what HTML gets rendered.
The metadata model is inspired by XSD — one of the most battle-tested formats for describing structured data. That heritage means the model can express almost any form scenario you'll encounter: required fields, length limits, allowed values, repeating groups, conditional branches, and nested structures. You don't need to know anything about XSD to use it. The benefit is that the hard edge cases were already thought through.
A concrete demo for a SaaS team collecting everything needed to onboard a new client. It highlights reusable templates, grouped sections, repeatable contacts, mutually exclusive launch paths, and computed fields that become required only when they matter.
IsDirty: false
Touched: false
Valid: true
// form values:
{
"clientOnboarding": {
"company": {},
"projectContacts": [
{}
],
"launchApproach": {
"selfServe": {},
"guidedRollout": {}
},
"systems": [
{}
]
}
}
README.md at the repository root for GitHub-friendly orientationpackages/core/README.md for the detailed package explanation