NOTFORM

Forms that feel natural.

notform brings schema-based validation to Vue 3 without the usual headaches. Connect your schemas, handle submissions, and track changes—all with the simplicity you'd expect.

What makes it different

    Style it your way

    notform works with your existing components and design system. Whether you're using Tailwind, shadcn/vue, or custom CSS, the validation layer adapts to your choices.

    Validation on your terms

    Choose when validation happens—on blur, change, or submit. Set field-level rules, form-wide constraints, or cross-field dependencies. You're in control of the validation flow.

    Dynamic fields made easy

    Add, remove, or reorder fields on the fly. Nest them as deep as you need. Each item gets validated with full type safety built in.

    Built for Composition API

    Designed from the ground up for Vue 3's Composition API. TypeScript inference works naturally, reactive state stays reactive, and composables actually compose.

    Use your preferred schema

    Works with Zod, Yup, Valibot, ArkType, and any library that follows the standard-schema pattern. Define your validation rules once and use them consistently across your app.

    Native Vue patterns

    v-model works just like you expect. No special bindings or custom directives required—just standard Vue with powerful form features underneath.

Why we built this

Forms shouldn't slow you down. NotForm lets you focus on building features instead of fighting with form state.

Types that flow naturally

Your schema types automatically propagate through field values, error states, and submission data. No manual type annotations needed.

Quick to learn, easy to use

Clear APIs and straightforward patterns mean you can be productive quickly. The documentation respects your time and gets you building fast.

Ready for real-world needs

Handle nested objects, async validation, conditional fields, multi-step forms, and file uploads. Build the forms your application needs without juggling multiple libraries.

Keep your options open

Built on standard schemas and Vue patterns. Your forms remain portable and you're free to switch approaches if your needs change.