Skip to main content
btheo.com btheo.com > press start to play
NEW POST: NODE.JS SECURITY 2025 OPEN FOR FREELANCE 10+ YEARS EXP REACT × NODE × AWS NEW POST: NODE.JS SECURITY 2025 OPEN FOR FREELANCE 10+ YEARS EXP REACT × NODE × AWS
TIL · 07 JAN 2026 · NOTE #020 ESC
TIL NOTE #020

Validate Your .env at Startup

The problem: process.env.DATABASE_URL is undefined. Your code uses it three layers deep. It fails at 3am.

The fix: Validate at startup using zod.

import { z } from "zod";
const envSchema = z.object({
DATABASE_URL: z.string().url(),
REDIS_URL: z.string().url(),
API_KEY: z.string().min(10),
NODE_ENV: z.enum(["development", "production", "test"]).default("development")
});
const env = envSchema.parse(process.env);
export default env;

If DATABASE_URL is missing or invalid, the app crashes on line 1. You see the error immediately.

In your app:

import env from "./env";
const db = pgClient(env.DATABASE_URL); // Type-safe, validated

Never reach for as any on environment variables.