.ENV Files Explained in 7 Minutes (for beginners)
By corbin
Key Concepts
- .env file: A configuration file used to store sensitive environment variables (secrets) locally.
- Environment Variables: Dynamic values (API keys, database URLs) that change depending on the environment (local, staging, production).
- Secrets Management: The practice of securely storing and managing sensitive credentials.
- Git Ignore: A configuration file that tells version control systems (like Git) to ignore specific files (like
.env) to prevent them from being uploaded to public repositories. - Granularization: The process of creating separate keys for different environments to isolate billing, logs, and security risks.
1. Understanding the .env File
The .env file is a secure repository for high-risk variables. In code, these are accessed via commands like process.env.API_KEY. The primary purpose is to keep sensitive data—such as OpenAI keys, Anthropic keys, or database credentials—out of the source code.
- Security Rule:
.envfiles must never be committed to version control (e.g., GitHub). They are intended to reside only on the developer's local machine. - Naming Conventions: Variables are typically written in uppercase with underscores (e.g.,
DATABASE_URL). Some frameworks (like Vite) require specific prefixes (e.g.,VITE_OPENAI_API_KEY) for the application to recognize them.
2. Types of Environment Files
- .env / .env.local: The primary file containing real, sensitive keys used for local development.
- .env.example: A template file containing placeholder keys (e.g.,
OPENAI_KEY=your_key_here). This file is committed to the cloud so that other developers know which variables are required to run the project. - .env.qa / .env.staging: Used for testing software in a live, cloud-accessible environment before it reaches the public.
- .env.production: Contains the keys used for the live, customer-facing version of the application.
3. The Logic of Granularization
The speaker emphasizes that developers should use different keys for different environments.
- Reasoning: If a production key is compromised, it does not necessarily expose the development environment. Furthermore, it allows for cleaner tracking of logs and billing, ensuring that development testing costs are not mixed with production usage.
4. Best Practices and Secret Management
While .env files are standard for local development, they are not the final solution for production-grade applications.
- Secret Managers: For live, cloud-based applications, developers should use dedicated services like Google Secret Manager, AWS Secrets Manager, or equivalent tools provided by platforms like Supabase or Firebase.
- Functionality: These services act as a "cloud-based .env file," providing a secure, centralized way to inject sensitive data into an application at runtime without storing them in plain text files on a server.
5. Key Takeaways
- Never commit real secrets to GitHub: Use
.gitignoreto ensure.envfiles stay local. - Use .env.example: Always provide a template for collaborators to follow.
- Environment Isolation: Use distinct keys for development, QA, and production to maintain security and operational clarity.
- Scale Up: As projects move from local development to production, transition from local
.envfiles to professional Secret Management services.
"You successfully know what an ENV file is, so stop leaking them on GitHub, okay?" — Corbin
Chat with this Video
AI-PoweredLoad the transcript when you're ready to chat so the initial page stays lighter.
Related Videos

I Run a $1M SaaS Portfolio on This Box (Self-Hosted)
Simon Høiberg

GitHub is having some major issues right now…
Fireship

Optimizing AI Inference using NGINX Gateway Fabric
F5 DevCentral Community

Let Copilot CLI write your next pull request
GitHub

Building your own software factory — Eric Zakariasson, Cursor
AI Engineer

Lessons from Scaling GitHub's Remote MCP Server — Sam Morrow, GitHub
AI Engineer

Azure Update 24th April 2026
John Savill's Technical Training