Package Manager
Contract Kit works with npm, pnpm, yarn, and Bun. Choose your preferred package manager:
Core Installation
Recommended Setup (Core Framework)
This installs everything except server adapters, React integrations, and providers:
npm install contract-kit zod
Alternative Schema Libraries
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
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