# Intro

import { Accordion, Accordions } from 'fumadocs-ui/components/accordion';
import { Tabs } from 'fumadocs-ui/components/tabs';

import { Featured } from '../components/featured';
import { Platinum } from '../components/platinum';
import { Gold } from '../components/gold';
import { Silver } from '../components/silver';
import { Bronze } from '../components/bronze';
import { HeroLogo } from '../components/hero-logo';

<div className="flex flex-col items-stretch text-center">
  <HeroLogo />

  <h1 className="text-3xl font-bold">Zod</h1>
  <p className="mt-2 mb-1">TypeScript-first schema validation with static type inference<br />by <a href="https://x.com/colinhacks">@colinhacks</a> </p>

  <br />

  <div className="flex flex-row flex-wrap justify-center gap-1 py-2">
    <a className="border-none" href="https://github.com/colinhacks/zod/actions?query=branch%3Amain">
      <img className="h-[20px] m-0!" src="https://github.com/colinhacks/zod/actions/workflows/test.yml/badge.svg?event=push&branch=main" alt="Zod CI status" />
    </a>

    <a className="border-none" href="https://twitter.com/colinhacks" rel="nofollow">
      <img className="h-[20px] m-0!" src="https://img.shields.io/badge/created%20by-@colinhacks-4BBAAB.svg" alt="Created by Colin McDonnell" />
    </a>

    <a className="border-none" href="https://opensource.org/licenses/MIT" rel="nofollow">
      <img className="h-[20px] m-0!" src="https://img.shields.io/github/license/colinhacks/zod" alt="License" />
    </a>

    <a className="border-none" href="https://www.npmjs.com/package/zod" rel="nofollow">
      <img className="h-[20px] m-0!" src="https://img.shields.io/npm/dw/zod.svg" alt="npm" />
    </a>

    <a className="border-none" href="https://github.com/colinhacks/zod" rel="nofollow">
      <img className="h-[20px] m-0!" src="https://img.shields.io/github/stars/colinhacks/zod" alt="stars" />
    </a>
  </div>

  <div className="flex flex-row justify-center gap-1">
    <a href="https://zod.dev">Website</a>
    <span>  •  </span>
    <a href="https://discord.gg/RcG33DQJdf">Discord</a>
    <span>  •  </span>
    <a href="https://twitter.com/colinhacks">𝕏</a>
    <span>  •  </span>
    <a href="https://bsky.app/profile/zod.dev">Bluesky</a>

    <br />
  </div>
</div>

<br />

{/* <ParamField path="param" type="string">
  An example of a parameter field
  </ParamField>

  <ParamField query="filter" type="string" default="none" required>
  The filtering command used to sort through the users
  </ParamField>

  <ParamField body="user_age" type="integer" default="0" required>
  The age of the user. Cannot be less than 0
  </ParamField> */}

<div className="mt-5 font-gray-100 mx-auto text-center pt-12">
  <span className="">
    Zod 4 is now stable! Read the <a rel="noopener noreferrer" href="/v4" alt="zod 4 release notes">release notes here</a>.
  </span>
</div>

<br />

<br />

<br />

<Featured
  data={{
name: "Jazz",
link: "https://jazz.tools/?utm_source=zod",
lightImage: "https://raw.githubusercontent.com/garden-co/jazz/938f6767e46cdfded60e50d99bf3b533f4809c68/homepage/homepage/public/Zod%20sponsor%20message.png",

darkImage: "https://raw.githubusercontent.com/garden-co/jazz/938f6767e46cdfded60e50d99bf3b533f4809c68/homepage/homepage/public/Zod%20sponsor%20message.png",
}}
/>

## Introduction

Zod is a TypeScript-first validation library. Using Zod, you can define *schemas* you can use to validate data, from a simple `string` to a complex nested object.

```ts
import * as z from "zod";

const User = z.object({
  name: z.string(),
});

// some untrusted data...
const input = { /* stuff */ };

// the parsed result is validated and type safe!
const data = User.parse(input);

// so you can use it with confidence :)
console.log(data.name);
```

## Features

* Zero external dependencies
* Works in Node.js and all modern browsers
* Tiny: 2kb core bundle (gzipped)
* Immutable API: methods return a new instance
* Concise interface
* Works with TypeScript and plain JS
* Built-in JSON Schema conversion
* Extensive ecosystem

## Installation

```sh
npm install zod
```

> Zod is also available as `@zod/zod` on [jsr.io](https://jsr.io/@zod/zod).

Zod provides an MCP server that can be used by agents to search Zod's docs. To add to your editor, follow [these instructions](https://share.inkeep.com/zod/mcp). Zod also provides an [llms.txt](https://zod.dev/llms.txt) file.

## Requirements

Zod is tested against *TypeScript v5.5* and later. Older versions may work but are not officially supported.

### `"strict"`

You must enable `strict` mode in your `tsconfig.json`. This is a best practice for all TypeScript projects.

```ts
// tsconfig.json
{
  // ...
  "compilerOptions": {
    // ...
    "strict": true
  }
}
```

## Ecosystem

Zod has a thriving ecosystem of libraries, tools, and integrations. Refer to the [Ecosystem page](/ecosystem) for a complete list of libraries that support Zod or are built on top of it.

* [Resources](/ecosystem?id=resources)
* [API Libraries](/ecosystem?id=api-libraries)
* [Form Integrations](/ecosystem?id=form-integrations)
* [Zod to X](/ecosystem?id=zod-to-x)
* [X to Zod](/ecosystem?id=x-to-zod)
* [Mocking Libraries](/ecosystem?id=mocking-libraries)
* [Powered by Zod](/ecosystem?id=powered-by-zod)

I also contribute to the following projects, which I'd like to highlight:

* [tRPC](https://trpc.io) - End-to-end typesafe APIs, with support for Zod schemas
* [React Hook Form](https://react-hook-form.com) - Hook-based form validation with a [Zod resolver](https://react-hook-form.com/docs/useform#resolver)
* [zshy](https://github.com/colinhacks/zshy) - Originally created as Zod's internal build tool. Bundler-free, batteries-included build tool for TypeScript libraries. Powered by `tsc`.

## Sponsors

Sponsorship at any level is appreciated and encouraged. If you built a paid product using Zod, consider one of the [corporate tiers](https://github.com/sponsors/colinhacks).

### Platinum

<Platinum />

<br />

### Gold

<Gold />

<br />

### Silver

<Silver />

<br />

### Bronze

<Bronze />

<br />