LESS GUESSWORK. MORE BUILDING.
See certainty
in action.
A familiar API. An unfamiliar amount of speed.
Give your data a little reality check.
user.schema.ts
import { v } from '@oxog/vld';const user = v.object({ name: v.string().min(2), email: v.string().email(), age: v.number().int().positive(),});type User = v.infer<typeof user>;user.safeParse(data); Your schema is your type. Always in sync.
Validation passed
{
"name": "Alex Morgan",
"email": "alex@example.com",
"age": 28
} No setup. No server. Just your data.