Native-first, not JSON-first
AnyVali is meant to feel familiar if you use Zod, Valibot, or the validation layer of your own platform. You keep authoring in the host language instead of dropping into a neutral DSL.
AnyVali
Portable validation without the extra layer
Author with a native SDK, export a canonical schema document, and validate consistently across runtimes.
Migration demo
AnyVali is meant to feel familiar if you use Zod, Valibot, or the validation layer of your own platform. You keep authoring in the host language instead of dropping into a neutral DSL.
Portable core features move cleanly between SDKs. Local-only behavior stays local. That split is explicit, which keeps your shared contracts honest instead of silently drifting.
The pipeline is defined: presence, coercion, defaults, validation, output. Teams can reason about what happens in every runtime without reverse-engineering edge cases.
How it works
Use the SDK API that fits your language conventions.
Emit a versioned JSON document with definitions and extensions.
Load the same contract in another AnyVali SDK.
Rely on the same issue codes, coercions, defaults, and constraints.
Examples
const Account = v.object({
id: v.int64(),
plan: v.enum(["free", "pro"]),
email: v.string().format("email"),
});
account = v.object({
"id": v.int64(),
"plan": v.enum(["free", "pro"]),
"email": v.string().format("email"),
})
account := v.Object(v.Fields{
"id": v.Int64(),
"plan": v.Enum("free", "pro"),
"email": v.String().Format("email"),
})
Use cases
Author in TypeScript, validate in Go or Java without rewriting schema logic.
Store exported JSON documents and let any AnyVali runtime import them on demand.
Keep consistency when services evolve independently but still share data contracts.
Back every implementation with the same conformance corpus and issue model.
SDK coverage
Learn more
Use the docs for the normative spec, JSON format, portability rules, and SDK guidance.