Typesafe Envs made Simple
The Next.js package comes preconfigured for Next.js and also enforces some extra rules by default to make sure you have out-of-the-box compatibility in all different Next.js runtimes.
For full documentation, see https://env.t3.gg
Installation
npm i @t3-oss/env-nextjs
pnpm add @t3-oss/env-nextjs
bun add @t3-oss/env-nextjs
deno add jsr:@t3-oss/env-nextjs
Usage
[!NOTE]
You may use any Standard Schema compliant validator of your choice. This example uses Zod
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";
export const env = createEnv({
server: {
DATABASE_URL: z.string().url(),
OPEN_AI_API_KEY: z.string().min(1),
},
client: {
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().min(1),
},
runtimeEnv: {
DATABASE_URL: process.env.DATABASE_URL,
OPEN_AI_API_KEY: process.env.OPEN_AI_API_KEY,
NEXT_PUBLIC_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_PUBLISHABLE_KEY,
},
});