← voltar ao blogPare de quebrar produção com
código14 de maio de 2026
Pare de quebrar produção: valide variáveis de ambiente com Zod
Como validar e tipar variáveis de ambiente usando Zod no Next.js.Tipando variáveis de ambiente com Zod
Pare de quebrar produção com .env
Todo dev já passou por isso:
DATABASE_URL undefinedOu pior:
API_KEY is missingE claro… isso só acontece em produção.
A solução?
Validar suas variáveis de ambiente com Zod.
Estrutura
src/
└── env/
└── index.tsInstalando
npm install zodCriando o schema
import { z } from 'zod';
const envSchema = z.object({
DATABASE_URL: z.string().url(),
NEXT_PUBLIC_APP_URL: z.string().url(),
JWT_SECRET: z.string().min(1),
});Agora o Zod vai validar tudo automaticamente.
Fazendo parse das variáveis
export const env = envSchema.parse(process.env);Arquivo completo:
import { z } from 'zod';
const envSchema = z.object({
DATABASE_URL: z.string().url(),
NEXT_PUBLIC_APP_URL: z.string().url(),
JWT_SECRET: z.string().min(1),
});
export const env = envSchema.parse(process.env);Usando no projeto
Agora em vez de:
process.env.DATABASE_URL;Você usa:
env.DATABASE_URL;E ganha:
- autocomplete
- type safety
- validação
- erros claros
- menos bugs idiotas
O melhor?
Se esquecer alguma variável:
O app quebra imediatamente.
E isso é ótimo.
Porque quebrar cedo é MUITO melhor do que quebrar em produção.
Dica extra
Você também pode separar variáveis client/server.
Exemplo:
NEXT_PUBLIC_API_URL;Tudo que começa com NEXT_PUBLIC_ vai para o client.
O resto fica apenas no servidor.
Final
Esse é um daqueles upgrades pequenos que deixam o projeto muito mais profissional.
Poucas linhas. Muito mais segurança.
E depois que você começa a usar… fica difícil voltar.