
How to Manage Environment Variables in Vercel (2026 Guide)
Step-by-step guide to Vercel environment variables. Covers production, preview, and development environments, the NEXT_PUBLIC_ prefix, Vercel CLI, secret rotation, and team-scale configuration management.
How to Manage Environment Variables in Vercel
Vercel is the go-to platform for deploying Next.js applications, static sites, and serverless functions. Its built-in environment variable management handles the basics well, but teams quickly run into limitations around access control, audit trails, and cross-project syncing. This guide covers everything from basic setup to scaling your configuration workflow as your team grows.
Understanding Vercel's Environment Variable System
Vercel provides a straightforward way to manage environment variables directly through its dashboard. When you deploy an application, you can define variables that are injected into your build process and runtime environment.
Environment Types in Vercel
Vercel separates environment variables across three distinct environments:
- Production - Variables available when deploying to your production domain
- Preview - Variables used for preview deployments (pull request previews)
- Development - Variables available when running
vercel devlocally
This separation is essential for maintaining different configurations across your deployment pipeline. For example, you might use a staging database URL in preview deployments while connecting to your production database only in production.
Adding Environment Variables in Vercel
To add environment variables in Vercel:
- Navigate to your project in the Vercel dashboard
- Go to Settings > Environment Variables
- Add your variable name and value
- Select which environments the variable should be available in
- Click Save
# Example variable configuration
DATABASE_URL=postgresql://user:pass@host:5432/db
NEXT_PUBLIC_API_URL=https://api.example.com
SECRET_KEY=your-super-secret-key
The NEXT_PUBLIC_ Prefix
For Next.js applications, variables prefixed with NEXT_PUBLIC_ are exposed to the browser. Variables without this prefix are only available server-side. This is a security feature - never prefix sensitive values with NEXT_PUBLIC_.
// Available in browser and server
const apiUrl = process.env.NEXT_PUBLIC_API_URL
// Only available server-side
const secretKey = process.env.SECRET_KEY
Common Challenges with Vercel Environment Variables
While Vercel's environment variable management is convenient, teams often encounter several challenges as they scale:
1. Syncing Variables Across Multiple Projects
Many organizations deploy multiple services or microservices, each as a separate Vercel project. Keeping shared variables (like API keys for third-party services) in sync across all projects becomes tedious and error-prone.
2. Team Access Control
Vercel's team features provide some access control, but managing who can view and modify specific environment variables isn't granular. Anyone with project access can potentially see all environment variables, including sensitive ones.
3. Version History and Audit Trails
When a deployment breaks due to a configuration change, it's difficult to identify what changed. Vercel doesn't provide detailed audit logs for environment variable modifications.
4. Local Development Sync
Keeping local .env files in sync with Vercel's environment variables requires manual effort. Developers often work with outdated configurations, leading to "works on my machine" problems.
5. Secret Rotation
Rotating secrets (like API keys or database passwords) requires updating variables in multiple places and redeploying affected services - a process that's both time-consuming and risky.
Best Practices for Vercel Environment Variables
Use Descriptive Naming Conventions
Adopt a consistent naming convention that makes variables self-documenting:
# Good: Clear and descriptive
STRIPE_SECRET_KEY_LIVE=sk_live_xxx
STRIPE_SECRET_KEY_TEST=sk_test_xxx
DATABASE_URL_PRIMARY=postgresql://...
DATABASE_URL_REPLICA=postgresql://...
# Avoid: Ambiguous names
KEY=xxx
DB=postgresql://...
Leverage Preview Environment Variables
Use preview-specific variables for testing integrations without affecting production:
# Production
STRIPE_SECRET_KEY=sk_live_xxx
# Preview (for testing)
STRIPE_SECRET_KEY=sk_test_xxx
Document Your Variables
Maintain documentation about what each variable does, who owns it, and when it was last rotated:
## Environment Variables
| Variable | Description | Owner | Last Rotated |
|----------|-------------|-------|--------------|
| DATABASE_URL | Primary PostgreSQL connection | DBA Team | 2024-01-15 |
| STRIPE_SECRET_KEY | Stripe payments API key | Payments Team | 2024-01-10 |
Use Vercel CLI for Automation
The Vercel CLI allows you to manage environment variables programmatically:
# Add a variable
vercel env add DATABASE_URL production
# List variables
vercel env ls
# Pull variables to local .env
vercel env pull .env.local
Integrating EnvManager with Vercel
While Vercel's native environment variable management works well for small projects, teams with complex requirements often need more robust tooling. EnvManager (free tier available, Pro under €10/month) complements Vercel by providing:
Centralized Variable Management
Instead of managing variables separately in each Vercel project, EnvManager provides a single source of truth. Define your variables once and sync them across all your projects and platforms.
Granular Access Control
EnvManager's role-based access control lets you define who can view, edit, or manage specific variables. Team members can access what they need without exposing sensitive production secrets.
Comprehensive Audit Logging
Every change in EnvManager is logged with timestamps and user attribution. When your staging deploy breaks at 11 PM, the audit log shows exactly who changed what and when — no more guessing or Slack archaeology.
Secure Secret Sharing
Share secrets with team members securely through EnvManager's encrypted storage, rather than sending them via Slack, email, or other insecure channels.
Environment Separation
Just like Vercel, EnvManager supports multiple environments per project. But EnvManager makes it easy to compare configurations across environments and identify discrepancies.
Setting Up EnvManager for Vercel Projects
Here's how to enhance your Vercel workflow with EnvManager:
1. Create Your Project in EnvManager
Sign up for EnvManager and create a new project. Add your environments (development, staging, production) to match your Vercel setup.
2. Import Existing Variables
If you already have environment variables in Vercel, you can export them and import into EnvManager:
# Export from Vercel
vercel env pull vercel-vars.env
# Import to EnvManager through the dashboard
3. Manage Variables in EnvManager
Use EnvManager as your single source of truth for configuration. Invite team members with appropriate access levels.
4. Sync to Vercel
When you need to update Vercel, export from EnvManager and update your Vercel project:
# Export from EnvManager
# Use the export feature to download your .env file
# Update Vercel (or use their dashboard)
vercel env add VARIABLE_NAME production < value.txt
Vercel Environment Variables vs. EnvManager
| Feature | Vercel Native | With EnvManager |
|---|---|---|
| Basic variable storage | Yes | Yes |
| Environment separation | Yes | Yes |
| Team access | Project-level | Variable-level |
| Audit logging | Limited | Comprehensive |
| Cross-project sync | Manual | Centralized |
| Secret encryption | Yes | Yes (with reveal control) |
| Version history | No | Yes |
| Local dev sync | Via CLI | Dashboard + export |
Security Considerations
When managing environment variables for Vercel deployments, keep these security practices in mind:
Never Commit Secrets to Git
Even with Vercel's environment variables, developers sometimes accidentally commit .env files or hardcode secrets. Use .gitignore and pre-commit hooks to prevent this.
# .gitignore
.env
.env.local
.env.*.local
Rotate Secrets Regularly
Establish a rotation schedule for sensitive credentials. EnvManager's audit logging helps track when secrets were last updated.
Use Least Privilege Access
Only grant access to variables that team members actually need. EnvManager's role-based access control makes this practical at scale.
Monitor for Exposed Secrets
Use tools like GitGuardian or GitHub's secret scanning to detect accidentally exposed credentials.
Conclusion
Vercel's environment variable management provides a solid foundation for most projects. However, as your team grows and your deployment complexity increases, you'll benefit from a dedicated environment variable management solution like EnvManager.
By centralizing your configuration, implementing proper access controls, and maintaining audit trails, you'll reduce deployment risks, improve team collaboration, and meet compliance requirements.
Ready to outgrow copy-pasting .env files? Start free with EnvManager — no credit card required.