Skip to main content

Vest

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", () => {
enforce(data.username).isNotBlank();
});

test("username", "Username must be at least 3 chars", () => {
enforce(data.username).longerThanOrEquals(3);
});

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.

🧩

Extendable

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

♻️

Reusable

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

🐜

Tiny

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