ARTICLE AD BOX
I'm building a mid-sized Node.js application and I want to manage environment variables properly across development, staging, and production environments.
Currently I'm using a basic .env file with the dotenv package, but I'm running into issues:
The problems I'm facing:
No type validation or default values
No clear separation between environments
Secrets accidentally committed to Git
No schema enforcement
I've seen libraries like dotenv-safe, envalid, and zod (with z.object for env), but I'm not sure which approach is recommended .
What are the best tools or patterns for:
Validating required environment variables at startup
Providing type safety (especially with TypeScript)
Managing multiple environments (dev/staging/prod)
Is the zod approach the current best practice, or are there better alternatives I should consider?
