Skip to main content

Package Manager

Contract Kit works with npm, pnpm, yarn, and Bun. Choose your preferred package manager:
npm install contract-kit

Core Installation

This installs everything except server adapters, React integrations, and providers:
npm install contract-kit zod
You can use Zod, Valibot, ArkType, or any Standard Schema library

Alternative Schema Libraries

npm install zod

Server Adapters

Next.js Adapter

For Next.js applications (App Router or Pages Router):
npm install @contract-kit/next next
Supports Next.js versions 14 and 15

Other Adapters

More adapters (Express, Fastify, etc.) are coming soon!

React Integrations (Optional)

If you’re building a React application, you can add these optional integrations:

React Query Integration

For data fetching with TanStack Query:
npm install @contract-kit/react-query @tanstack/react-query

React Hook Form Integration

For form handling:
npm install @contract-kit/react-hook-form react-hook-form @hookform/resolvers

Base React Utilities

Helper hooks and components:
npm install @contract-kit/react

Providers (Optional)

Providers are optional packages that integrate with external services:

Database

# Drizzle + Turso
npm install @contract-kit/provider-drizzle-turso

Caching

# Redis
npm install @contract-kit/provider-redis ioredis

Email

# Resend
npm install @contract-kit/provider-mail-resend resend

# SMTP
npm install @contract-kit/provider-mail-smtp

Authentication

# Better Auth
npm install @contract-kit/provider-auth-better-auth better-auth

Background Jobs

# Inngest
npm install @contract-kit/provider-inngest inngest

Rate Limiting

# Upstash Rate Limit
npm install @contract-kit/provider-rate-limit-upstash @upstash/ratelimit @upstash/redis

Logging

# Pino Logger
npm install @contract-kit/provider-logger-pino pino

TypeScript Configuration

Contract Kit requires TypeScript 5.0 or higher. Ensure your tsconfig.json has these settings:
{
  "compilerOptions": {
    "strict": true,
    "target": "ES2022",
    "lib": ["ES2022"],
    "module": "ESNext",
    "moduleResolution": "bundler",
    "skipLibCheck": true
  }
}

Verification

Verify your installation by creating a simple contract:
import { createContractGroup } from "contract-kit";
import { z } from "zod";

const test = createContractGroup();

const healthCheck = test
  .get("/health")
  .response(200, z.object({ status: z.literal("ok") }));

console.log("Contract Kit installed successfully!");

Next Steps