Settings
You've deployed your project, picked a function region, and set up environments. Now comes the part where you make the project actually yours: wiring up secrets, pointing a real domain at it, planning for failure, and deciding who gets the keys.
Environment variables
From your project, go to Settings > Environment Variables. Click Add Environment Variable, enter a key and value, and choose which environments it applies to: production, preview, development, or any combination.
One detail worth knowing: every variable has a type. A Secret value can't be read back from the dashboard after you save it. A Config value stays visible for future reference.
You can add multiple variables at once, or paste a batch from your clipboard if you're migrating from another platform. Click Save when you're done.
For environment variables to take effect, you need to redeploy your project.
Shared variables
If a variable applies across multiple projects (a shared API key, for example), you don't need to duplicate it everywhere. Click Link Shared Variable and select a team-level variable from the dropdown. It shows up under the Shared tab in your project's environment variables.
Custom domains
Go to Domains from your project settings. You have two paths:
- Add an existing domain — enter your domain name, select the environment (usually production), and save. Vercel walks you through setting the DNS records.
- Buy a new domain — click Buy, search for what you want, and Vercel handles the DNS configuration for you.
Function failover regions
In a previous lesson, you configured your primary function region. But what happens if that region goes down?
Failover regions give your functions a backup location. To enable them, go to Settings > Functions, open Advanced Settings, and make sure Function Failover is turned on.
The actual failover regions are configured in your vercel.json. Pick regions other than your primary one, since failover regions must be different from your default regions:
{
"functionFailoverRegions": ["cle1", "sfo1"]
}The order doesn't matter. Vercel automatically routes to whichever failover region is nearest to the failing one.
Team roles
From your team's Settings > Members, you can invite people and assign roles. Here's what each role controls:
- Owner — full access to everything, including billing and team settings
- Member — can create deployments, manage integrations and domains across all projects
- Developer — can create deployments across all projects, and can ship to production by merging to the production branch
- Security — can manage security features like Firewall, Rate Limiting, and Deployment Protection, with read-only access to projects
- Contributor — only has access to projects you explicitly assign
- Viewer — can see preview deployments but doesn't count as a paid seat
- Billing — manages billing and payment methods, with read-only access to every project
Contributors are particularly useful for contractors or cross-functional collaborators who only need access to specific projects.
Project-level roles
Project-level roles aren't on every plan; Access Roles lists where they're available. After inviting someone as a contributor, open the specific project, select Access from the left navigation, and pick the team member's email in the Project Access section. Then assign a project role: Project Viewer, Project Developer, or Project Admin.
Team role sets the baseline. Project roles let you grant more or less access on a per-project basis.
Access groups
Managing access one person and one project at a time doesn't scale. Access groups solve this.
Access groups aren't on every plan either, so check Access Groups first. Go to Settings > Access Groups and click Create Access Group. Give it a name (like "Core Developers"), select the projects, add the members, and click Create. Everyone in the group gets access to every project in the group, all at once.
For teams with a lot of members and projects, this is the approach to use. Keeping an overview is significantly easier with access groups than with individual assignments.
Recap
- Environment variables are scoped per environment, and Secret values are write-only after saving
- Shared variables prevent duplication across projects
- Custom domains can be added or purchased directly from the dashboard
- Failover regions give your functions a backup location, configured in
vercel.json - Team roles control baseline access; project roles fine-tune it per project
- Access groups let you manage permissions for many people and projects at once
Follow up docs
Was this helpful?