vee-validate

Template-based form validation library for Vue.js with Composition API support

Library
npm
v4.15.1
11,259stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
57/100Fair
Development Activity8
Maintenance44
Community76
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
77/100Good
Architecture80
Code Quality78
Innovation74
Learning Curve76

vee-validate is a Vue.js form validation library that lets you validate form fields either declaratively in templates (via Field/Form components) or programmatically through Composition API hooks like useField and useForm. It supports both simple function/regex rules and full schema validation through Yup or Zod, plus field arrays for dynamic repeating inputs.

The project is organized as a monorepo, with the core vee-validate package accompanied by @vee-validate/rules (a library of common validation rules), @vee-validate/i18n (localized error messages), @vee-validate/zod/Yup schema adapters, and a Nuxt module, so teams can pull in only the pieces they need.

What You Get

  • Field, Form, FieldArray, and ErrorMessage components for declarative, template-based validation
  • Composition API hooks (useField, useForm, useFieldArray, useIsFormValid, etc.) for programmatic form state and validation
  • Schema validation adapters for Yup and Zod (@vee-validate/zod) alongside plain function/object validators
  • @vee-validate/rules — a companion package of common validation rules (required, email, min/max, etc.)
  • @vee-validate/i18n for localized validation error messages
  • A Nuxt module (@vee-validate/nuxt) for zero-config integration in Nuxt applications

Common Use Cases

  • Validating multi-field forms (signup, checkout, settings) with per-field and form-level error states
  • Building dynamic, repeating field groups (e.g. line items, addresses) with FieldArray
  • Reusing a Yup or Zod schema already defined for API validation to also drive client-side form validation
  • Migrating between Options API and Composition API codebases while keeping the same validation logic via composables

Under The Hood

Architecture - The monorepo (packages/) separates the core (packages/vee-validate/src) from optional add-ons: packages/rules ships prebuilt validator functions, packages/i18n ships locale message bundles, and packages/nuxt wraps the core as a Nuxt module; the core itself exposes both components (Field.ts, Form.ts, FieldArray.ts, ErrorMessage.ts) and composables (useField.ts, useForm.ts, plus a large family of granular use* hooks like useIsFieldDirty/useSetFieldValue) that share validation logic through validate.ts and a symbols.ts-based provide/inject context. Tech Stack - Written almost entirely in TypeScript (97.9%) for Vue 3, managed as a pnpm workspace with Changesets for release versioning, Vitest for testing, and a VitePress-based docs site under docs/; schema validation integrates with the separately maintained Yup and Zod libraries rather than shipping its own schema DSL. Code Quality - The core package alone spans 4,500+ lines across ~30 composable/component files, each scoped to a single concern (one hook per form-state facet), with ESLint, Prettier, and TypeScript strict-mode enforced via pnpm lint/pnpm typecheck; however GitHub activity data shows low recent commit velocity and infrequent maintenance despite the project’s popularity and long history (since 2016, 4,870+ commits). API Design - Exposing both a declarative component API and an equivalent composable API for the same underlying validation engine gives adopters a smooth on-ramp regardless of whether their codebase favors templates or the Composition API, and the fine-grained use* hooks (one per concern) make it easy to subscribe to just the piece of form state a component needs.

Used by 7 apps in this directory

Other

Akaunting

Invoicing Finance

10,070

Open-source online accounting for small businesses and freelancers — invoices, expenses, and reporting without monthly fees or vendor lock-in.

View details
98
Repo Health
73
Technical
63
Dependency
Updated yesterday
PHP
72%
MIT

Bagisto

Analytics · Ecommerce

27,983

Open-source Laravel eCommerce platform for building multi-vendor marketplaces, B2B stores, headless commerce, and AI-powered storefronts.

View details
93
Repo Health
75
Technical
69
Dependency
Built with
PHP72%
Blade22%
Updated today
Rust
50%
Other

hoodik

File Storage · Security

1,446

Self-hosted, end-to-end encrypted cloud storage with browser-based encryption and S3-compatible storage support

View details
74
Repo Health
71
Technical
65
Dependency
Built with
Rust50%
TypeScript33%
Vue15%
Updated 4 days ago
Rust
41%
Other

Hook0

Devops

1,477

Open-source Webhooks-as-a-Service: deliver events to your users with auto-retry, signed payloads, and a real-time subscriber dashboard — all without building the infrastructure yourself.

View details
83
Repo Health
82
Technical
70
Dependency
Built with
Rust41%
TypeScript17%
JavaScript15%
Updated today
PHP
51%
MIT

Krayin CRM

Ecommerce · CRM

23,694

Free, open-source Laravel & Vue.js CRM for SMEs and enterprises to manage the complete customer lifecycle.

View details
88
Repo Health
68
Technical
70
Dependency
Built with
PHP51%
Blade46%
Updated yesterday
TypeScript
72%
Apache 2.0

Litlyx

Analytics

1,741

Cookie-free, AI-powered web analytics you can self-host in 30 seconds with Docker.

View details
44
Repo Health
51
Technical
74
Dependency
Built with
TypeScript72%
Vue26%
Updated 8 months ago
Vue
41%
AGPL 3.0

Operational

Analytics · Automation · Monitoring

476

Open-source event tracker with real-time push notifications and action buttons for tech founders.

View details
57
Repo Health
68
Technical
72
Dependency
Built with
Vue41%
JavaScript38%
MDX13%
Updated 3 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search