Vest is a validations library for JS apps that derives its syntax from modern JS frameworks such as Mocha or Jest. It is easy to learn due to its use of already common declarative patterns. It works great with user-input validation and with validating upon user interaction to provide the best possible user experience.

The idea behind Vest is that your validations can be described as a 'spec' or a contract that reflects your form or feature structure. Your validations run in production, and they are framework agnostic - meaning Vest works well with React, Angular, Vue, or even without a framework at all.

Programming language: TypeScript
License: MIT License
Tags: Utilities     Testing     Validation     Validator    
Latest version: v3.2.8

Vest alternatives and similar libraries

Based on the "Utilities" category.
Alternatively, view Vest alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Vest or a related project?

Add another 'Utilities' Library


Vest - Declarative validations framework

Vest Documentation

Join Discord Github Stars Version Downloads bundlephobia Status


Vest is a form-validation framework inspired by unit testing libraries like Mocha or Jest; It is designed to be easy to use and easy to learn by introducing their declarative syntax.

The idea behind Vest is that your validations can be described as a suite - a contract that reflects your form or feature structure. Vest is framework agnostic, meaning it can be used with any UI framework, or without any framework at all.

Using Vest for form validation can reduce bloat, improve feature readability and maintainability.

test('username', 'Username is required', () => {

test('username', 'Username must be at least 3 chars', () => {

test('username', 'Username already taken', async () => {
  await doesUserExist(data.username);


npm i vest


Writing forms is an integral part of building web apps, and even though it may seem trivial at first - as your feature grows over time, so does your validation logic grows in complexity.

Vest tries to remediate this by separating validation logic from feature logic, so it's easier to maintain over time and refactor when needed.

Why Vest?

๐Ÿ’ก Vest is easy to Learn. Vest adopts the syntax and style of unit testing frameworks, so you can leverage the knowledge you already have to write your form validations.

๐ŸŽจ Vest is framework agnostic. You can use Vest with any UI framework out there.

๐Ÿง  Vest takes care of all the annoying parts for you. It manages its validation state, handles async validations, and much more.

๐Ÿงฉ Vest is extendable. You can easily add new kinds of validations to Vest according to your needs.

โ™ป๏ธ Validation logic in Vest can be shared across multiple features in your app.

Getting Started

Vest Documentation

Here are some code sandboxes to get you started:


Information describing how to contribute can be found here: