Ajv

The fastest JSON Schema validator for Node.js and the browser, compiling schemas straight into executable validation code.

Library
npm
v8.20.0
14,864 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
60 /100 Good
Development Activity 28
Maintenance 44
Community 68
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
81 /100 Excellent
Architecture 85
Code Quality 88
Innovation 82
Learning Curve 70

Ajv (Another JSON Schema Validator) turns JSON Schema documents into compiled JavaScript validation functions rather than interpreting them at runtime, which is why it consistently benchmarks as the fastest validator in the ecosystem. It supports JSON Schema draft-04 through 2020-12 plus JSON Type Definition (RFC 8927), along with OpenAPI extensions like discriminator and nullable.

Beyond pure validation, Ajv can coerce data types, assign defaults to missing properties, remove additional properties, and generate standalone validation code with no runtime dependency on Ajv itself. Its TypeScript-first API infers static types from JSONSchemaType and JTDSchemaType definitions, and a large plugin ecosystem (ajv-formats, ajv-keywords, ajv-i18n) extends it with formats, custom keywords, and localized error messages.

What You Get

  • A compile()/validate() API that turns any JSON Schema (draft-04 to 2020-12) into a reusable, highly optimized validation function
  • First-class JSON Type Definition (RFC 8927) support alongside JSON Schema, including its own meta-schema
  • Data modification during validation: coercing types, assigning defaults, and removing additional properties
  • Standalone code generation so compiled validators can be exported as plain JS with zero Ajv runtime dependency
  • A TypeScript API that infers static types from JSONSchemaType<T>/JTDSchemaType<T> schema definitions
  • An extensible keyword and format system, backed by companion packages (ajv-formats, ajv-keywords, ajv-i18n) for additional formats, keywords, and translated error messages

Common Use Cases

  • Validating incoming request bodies and query params in Node.js API servers before they reach business logic
  • Enforcing config file and environment schema correctness at application startup
  • Powering OpenAPI/Swagger request and response validation middleware
  • Client-side form and payload validation in the browser using the same schema as the backend
  • Generating standalone, dependency-free validation functions for edge/serverless environments where bundle size matters

Under The Hood

Architecture Ajv’s core (lib/ajv.ts, lib/core.ts) drives a compile pipeline where SchemaEnv/compileSchema in lib/compile/index.ts resolve and cache schemas by $id, lib/compile/validate walks the schema tree emitting imperative validation logic through a custom intermediate representation in lib/compile/codegen, and per-keyword handlers registered as vocabularies (lib/vocabularies/{applicator,core,validation,format,jtd}) each contribute codegen fragments that are assembled into one JavaScript function, later instantiated via new Function or exported as standalone source through lib/standalone.

Tech Stack Written in strict TypeScript (5.3) compiled to a small, dependency-light runtime — fast-deep-equal, fast-uri, json-schema-traverse, and require-from-string are the only production dependencies — with Rollup producing browser bundles, Karma running cross-browser tests, and ESLint/Prettier configured via the shared @ajv-validator/config package.

Code Quality The spec/ directory holds 73 spec files covering async validation, discriminator, dynamic $ref, JTD, and codegen internals, plus the official JSON-Schema-Test-Suite pulled in as a git submodule for cross-implementation conformance; naming is consistent and domain-specific (SchemaEnv, KeywordCxt, ValidationRules), and nyc-based coverage is wired into npm run test-cov.

API Design The public surface is compact — Ajv, Ajv2019, Ajv2020, and AjvJTD classes with chainable compile/addSchema/addFormat/addKeyword methods — and JSONSchemaType<T>/JTDSchemaType<T> generics let a single schema double as a compile-time TypeScript type, cutting boilerplate; the tradeoff is that mastering the keyword/vocabulary extension API and the type-inference generics requires reading the docs rather than guessing from the API shape alone.

Used by 67 apps in this directory

TypeScript
97%
Other

Rocket.Chat

Team Chat

46,304

The secure, self-hosted team communications platform for organizations that cannot compromise on data sovereignty.

View details
96
Repo Health
79
Technical
63
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
67%
MIT

Scalar

Developer Tools

16,313

Beautiful, interactive OpenAPI documentation with a built-in offline-first API client and multi-language code generation — all in one open-source platform.

View details
90
Repo Health
89
Technical
65
Dependency
Built with
TypeScript 67%
Vue 29%
Updated 6 days ago
TypeScript
95%
MIT

Skrun

AI Agents

210

An open, self-hostable, multi-model agent runtime that deploys any agent skill as an API via POST /run — an open-source alternative to Claude Managed Agents and Google's Gemini Enterprise Agent Platform.

View details
54
Repo Health
66
Technical
77
Dependency
Built with
TypeScript 95%
Updated 1 months ago
Python
100%
Other

Sourcebot

AI Code Assistants · Developer Tools · Search

4,005

A self-hosted, AI-powered code search engine that indexes every repo across GitHub, GitLab, Bitbucket, Gitea, Gerrit, and Azure DevOps, so both engineers and coding agents can search, browse, and ask questions about your codebase from one place.

View details
86
Repo Health
83
Technical
61
Dependency
Built with
Python 100%
Updated 1 weeks ago
TypeScript
89%
Other

strapi

CMS

73,368

Open-source headless CMS that auto-generates REST and GraphQL APIs from your content models, with a fully customizable admin panel you control.

View details
93
Repo Health
84
Technical
63
Dependency
Built with
TypeScript 89%
JavaScript 11%
Updated 1 weeks ago
TypeScript
92%
Other

Suna

AI Agents

20,306

Turn your company into a git repo — one config, one command center, a workforce of AI agents that runs the real work around the clock.

View details
90
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 92%
Updated 6 days ago
TypeScript
99%
Other

Teable

Databases · No Code Platforms

21,920

A no-code PostgreSQL database with spreadsheet UX, real-time collaboration, and native AI agents — built for teams that outgrow Airtable.

View details
78
Repo Health
76
Technical
62
Dependency
Built with
TypeScript 99%
Updated 1 weeks ago
Rust
79%
Apache 2.0

TensorZero

Ab Testing Experimentation · AI Development · Monitoring

11,708

TensorZero unifies the LLM gateway, observability, evaluation, optimization, and experimentation stack behind a single OpenAI-compatible API, built in Rust for sub-millisecond p99 latency.

View details
53
Repo Health
87
Technical
68
Dependency
Built with
Rust 79%
TypeScript 15%
Updated 4 months ago
HTML
68%
AGPL 3.0

ToolJet

AI Agents · Low Code Platforms · No Code Platforms

41,123

Open-source AI-native platform to build and deploy internal tools, workflows, and AI agents with a visual drag-and-drop builder and 80+ data source integrations.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
HTML 68%
JavaScript 20%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers