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%
GPL 3.0

OpenKnowledge

Code Editors · Knowledge Management · Note Taking

4,674

A beautiful, local-first markdown IDE that turns any git repo into a live collaborative workspace for humans and AI coding agents like Claude, Codex, and OpenCode.

View details
80
Repo Health
89
Technical
64
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
99%
Other

openclaude

AI Agents · AI Code Assistants

34,123

Run Claude Code workflows against any LLM — OpenAI, Gemini, Ollama, and 200+ backends — from a single terminal-first CLI.

View details
87
Repo Health
78
Technical
71
Dependency
Built with
TypeScript 99%
Updated 6 days ago
JavaScript
64%
AGPL 3.0

overleaf

Collaboration · Productivity

18,266

Open-source, real-time collaborative LaTeX editor with sandboxed compilation and full TeXLive support for self-hosted academic and research teams.

View details
84
Repo Health
80
Technical
59
Dependency
Built with
JavaScript 64%
TypeScript 30%
Updated 1 months ago
TypeScript
93%
MIT

paperclip

AI Agents · Automation

106,667

The open-source control plane that turns a pile of AI agents into an actual company — with org charts, budgets, heartbeats, and governance.

View details
86
Repo Health
78
Technical
68
Dependency
Built with
TypeScript 93%
Updated 6 days ago
TypeScript
98%
AGPL 3.0

paseo

AI Agents · AI Code Assistants

21,830

One unified interface to orchestrate Claude Code, Codex, Copilot, OpenCode, and Pi agents in parallel from desktop, mobile, or the terminal.

View details
88
Repo Health
83
Technical
66
Dependency
Built with
TypeScript 98%
Updated 6 days ago
TypeScript
96%
MIT

Payload CMS

Blogging · CMS · Developer Tools

45,458

The open-source, Next.js-native headless CMS that lives inside your /app folder and gives you a full TypeScript backend instantly.

View details
92
Repo Health
88
Technical
65
Dependency
Built with
TypeScript 96%
Updated 6 days ago
TypeScript
91%
AGPL 3.0

PeerTube

Social Media

15,362

A federated, ActivityPub-based video hosting platform built by Framasoft — self-hostable instances interconnect into a network with no vendor lock-in, P2P-assisted streaming, and no ads.

View details
96
Repo Health
75
Technical
66
Dependency
Built with
TypeScript 91%
Updated 2 weeks ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 6 days ago
TypeScript
98%
MIT

Promptfoo

AI Development

26,358

An open-source CLI and library for evaluating and red-teaming LLM applications — replace trial-and-error prompt engineering with systematic evals, vulnerability scanning, and CI/CD integration.

View details
90
Repo Health
73
Technical
67
Dependency
Built with
TypeScript 98%
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