Skip to main content


Declarative validations framework inspired by unit testing libraries

Vest is a form validations framework that looks and feels like a unit testing framework.
It allows you to express your validation logic in a simple and readable way that's also easy to maintain in the long run.

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

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

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

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.


Framework Agnostic

Bring your own UI. Vest is framework agnostic, so you can use it with any UI framework you have.


Really smart

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



You can easily add new custom types of validations to Vest according to your needs.



Validation logic in Vest can be shared across multiple features in your app.



Packed with features, but optimized for size. Vest brings no dependencies, and only takes a few KBs.