// Available in the browser and server console.log(process.env.NEXT_PUBLIC_ANALYTICS_ID); // Available ONLY in server-side functions (getServerSideProps, API routes) console.log(process.env.DATABASE_URL); Use code with caution. Best Practices for Managing .env.development.local
: Configuration defaults applied exclusively during active local development. (Version controlled).
| Practice | Implementation | Risk if Ignored | |---|---|---| | Add *.local to .gitignore | Add .env*.local to the project's .gitignore file | Secrets and personal configs are committed to repository | | Use .env.example as a template | Create .env.example listing all variables (empty values) | New team members don't know which variables to define | | Never commit .env*.local | Double-check before committing; use git status | Exposure of sensitive data in version control history | | Restrict file permissions | Use chmod 600 .env*.local on Unix systems | Other users on shared machines can read sensitive values | | Validate required variables at startup | Implement schema validation (e.g., with Zod) | App crashes unexpectedly due to missing variables | .env.development.local
Since .env.development.local is not committed, create a .env.example file containing the keys (but not the values) so other developers know what variables are required [3jop].
: Since .env.development.local is not tracked by Git, new team members cloned into the repository won't know what variables are required. Maintain a .env.example file that tracks the required keys but leaves the values blank or filled with placeholder text. // Available in the browser and server console
If you are working on a feature that requires a different API endpoint than the rest of your team, you can specify it locally:
: Do not rely on .env.development.local logic for production servers. Production environments should use system-level environment variables provided directly by your hosting platform (Vercel, AWS, Netlify, Docker, etc.). | Practice | Implementation | Risk if Ignored
(Shared development settings committed to Git)
If a variable named API_URL is defined in both .env.development and .env.development.local , the build system will use the value inside .env.development.local . Why Use .env.development.local ?
Sensitive third-party keys are the most common target for attackers. To keep your project secure:
: After adding or modifying .env.development.local , the changes don't seem to take effect.
If you want to know the latest trends in energy storage and new developments in research, subscribe.
If you want to join a top-level team, collaborate with specialists in multiple disciplines or tell us about your concerns, don't think twice...