Building and running websites and apps on Vercel

Global · UAE

API keys pasted into three places: when to put Doppler in front of Vercel, and how

By Shivanath DevinarayananPublished 6 min read
Written forCTO, CXO, or VP or director of engineering who owns the agent stack and the model bill“Which model should run which step, and what does each step cost?”

The short answer

When should a team use the Doppler integration to manage Vercel environment variables, and how should it be set up?

Add Doppler when the same keys live in more than one place: several Vercel projects, GitHub Actions or another cloud. One app with one team is fine on Vercel's own Secret variables. The sync runs one way, needs one sync per environment, and takes effect on the next deployment. At Mindcat, we set it up per project.

A glowing key in a wooden cabinet with gold lines running to three padlocks, and the words One-way sync

Takeaways

  1. 01One app and one team: use Vercel Secret variables. Many projects or platforms sharing keys: put Doppler in front.
  2. 02The sync runs from Doppler to Vercel only. Edits made in Vercel do not flow back.
  3. 03Development, Preview and Production each need their own sync, each with its own Doppler config.
  4. 04Vercel applies a changed variable to new deployments only. Redeploy after you rotate a key.

If your payment, WhatsApp or CRM keys are pasted by hand into a Vercel dashboard, a laptop .env file and a build pipeline, this is for you. It is not for a team with one app and one developer: Vercel's own Secret variables are enough there, and adding a second tool only adds a second login.

When is Vercel's own secret storage enough?

When one team runs one or two projects and nothing outside Vercel needs the same keys. Vercel encrypts environment variables at rest. A Secret variable is write-only after you save it: its value cannot be read back in the dashboard or the API. Variables can be shared at team level across projects, and each environment gets its own values.

The trouble starts when the same key lives in several places. A WhatsApp Business API token sits in three Vercel projects, a GitHub Actions job and a developer's laptop. Someone rotates it in one place. Two sites keep sending messages with the old token until a customer says replies stopped.

That is the case for a secrets manager in front of Vercel: one place where a key changes, and syncs that copy it out. Doppler is one that has a Vercel integration, listed on the Vercel Marketplace as a third-party integration with 1,000+ installs.

Our rule: one app, one team, keys used only on Vercel, stay on Vercel Secret variables. Several projects, several platforms, or keys a person outside the team must never see, put Doppler in front.

How we connect keys, databases and tools to a Vercel project is on Vercel integrations.

What does the Doppler sync actually do?

It copies secrets from a Doppler config into one Vercel environment, in one direction.

Change a key in Doppler, the sync pushes it to Vercel, redeploy, the new deployment uses it; Vercel edits do not flow back
The sync runs one way. Running deployments keep the old value until you redeploy.
  1. 01In Doppler, open the project's Integrations, choose Vercel and authorise the Doppler app for Vercel.
  2. 02Pick the Vercel team, project and environment, the Vercel variable type, and the Doppler config to sync.
  3. 03Doppler writes those secrets to Vercel and keeps them in sync from then on.
  4. 04Vercel applies the new values to the next deployment, not to the ones already running.

The fourth step is where teams get caught. Vercel's environment variables page says changes "only apply to new deployments." A rotated key is not live until each project that uses it deploys again, so put the redeploy in your rotation checklist.

The first step matters too. Doppler's guide describes syncing Doppler secrets to Vercel. Nothing in it says Vercel edits come back. Make it a written team rule that keys change in Doppler, never in the Vercel dashboard.

Why do you need three syncs, not one?

Because Doppler's guide says Vercel's Development, Preview and Production environments each need "a separate Vercel integration."

Development, Preview and Production each take one Doppler config and one sync of type Config, Secret or Dynamic
One sync for each Vercel environment, from Doppler's setup guide.

The split works in your favour. Each sync points at its own Doppler config, so a preview link can carry test payment keys and a test CRM login while production carries the real ones. Vercel has a team policy for the same idea, "Separate Production Secret Values", which makes every Secret use a different value in Production than in the other environments.

The Doppler page names only those three environments. Vercel's custom environments (a staging or QA on Pro and Enterprise) are not mentioned, so test that case before you rely on it.

Each sync also picks a variable type:

TypeWhat lands in VercelUse it when
ConfigEvery secret as a readable Config variableRarely. Anyone with project access can read them.
SecretEvery secret as a write-only Secret variableThe config holds only server-side keys.
Dynamic (default)Unmasked secrets as Config, masked or restricted ones as SecretThe config mixes public values with real keys.

What breaks a sync, and how do you spot it?

Three things, all in Doppler's guide.

Checklist: keys as Secret, NEXT_PUBLIC_ as Config, reserved names skipped, own production values, redeploy, rotate
Our checklist, built from the Doppler and Vercel docs read on 16 October 2026.
  • A public variable synced as a Secret. Values with a public prefix such as NEXT_PUBLIC_ must be Config. If a sync tries to store one as a Secret, Vercel rejects it and the sync is disabled with an error naming the variable. The fix is the Dynamic type with that value marked Unmasked in Doppler.
  • A reserved name. AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, NOW_REGION, TZ and others are reserved by the Vercel runtime and cannot be synced. Rename them in the code.
  • An old sync on the Config type. Syncs made before Vercel supported Secret variables may still write Config. Doppler's fix is to delete the sync, choosing "Delete all secrets in Vercel", and recreate it as Secret, one environment at a time.

Two Vercel limits sit beside these. A deployment can carry 64 KB of environment variables in total. And build logs redact a Secret only when it is 32 characters or longer, so a short password printed in a log stays readable. Do not print keys in builds.

What does it look like for eight client sites?

Here is a sample plan, not a client. A Dubai digital agency runs eight client sites on Vercel. Each site has a lead form that creates a Salesforce lead through an integration user, and three of them send WhatsApp replies. Today the keys sit in each project's settings, and two former freelancers once had dashboard access.

StepKeys pasted by handDoppler in front
A freelancer leavesSomeone lists which projects they could seeRemove them from Doppler and the Vercel team
Rotate the WhatsApp tokenPaste it into three projects and one laptopChange it once in the Doppler config the three sites share
Make it liveHope each project was redeployedRedeploy the three projects; the sync has already written the value
Prove it laterNobody can say who changed whatThe value changed in one place: the Doppler config

The Salesforce side stays where it is. The integration user, its permissions and its login history live in Salesforce. Doppler holds the credential; Salesforce decides what it can touch. For the agency side of this work, see Mindcat for digital agencies.

Where do Marketplace integrations fit?

Next to Doppler, not under it. Vercel's native Marketplace integrations, such as Neon, Supabase and Upstash, add their own environment variables to your project when you connect them, and the billing goes on your Vercel invoice. Let each one own the variables it creates. Copying them into Doppler gives you two sources for the same value.

Two gaps to know, from the Marketplace on 16 October: there is no Salesforce listing and no 1Password listing. Infisical has one, for teams that prefer it to Doppler. We did not compare the two here.

If you have no production workload on Vercel yet, do not start with a secrets manager. Ship one project on Secret variables, then add Doppler when the second platform needs the same keys.

What happens on the first call?

We call the method Preview every change, and keys are part of it: every preview gets its own values, and nothing reaches production on a key someone pasted by hand. On the call you list the projects, the places each key lives today and who can see them. The written assessment is free and says which keys move to Doppler, which stay on Vercel, and the order to rotate them.

The first build week is a fixed AED/SAR 14,900, and Run plans keep the rotations on a calendar after go-live. See everything we build at Vercel, then send us your project list.

Filed under

Building and running websites and apps on Vercelvercel secret environment variablesvercel environment variables secretsdoppler sync vercelrotate api keys vercel
Useful to someone on your team?

FAQ

Questions teams ask next

Is the Doppler and Vercel sync two-way?
No. Doppler's Vercel guide describes automatic syncing of Doppler secrets to Vercel, in that direction. Treat Doppler as the source and Vercel as the copy. If someone edits a value in the Vercel dashboard, the next sync from Doppler can overwrite it, so make it a team rule that keys change in Doppler only.
Why did my Doppler sync to Vercel stop with an error?
The most common cause in Doppler's own guide is a public variable such as one starting with NEXT_PUBLIC_ being synced as a Secret. Vercel requires those to be Config variables, rejects the write, and the sync is disabled with an error naming the variable. Use the Dynamic type and mark public values Unmasked in Doppler. Reserved names such as AWS_REGION and TZ cannot be synced at all.
Do running deployments pick up a rotated key?
No. Vercel's environment variables page says changes are not applied to previous deployments, only to new ones. After a key changes in Doppler and the sync writes it to Vercel, redeploy each project that uses it.
What does Doppler cost?
Doppler's prices are not on the Vercel Marketplace listing or the Doppler Vercel guide we read on 16 October 2026, so we do not quote them here. Check Doppler's own pricing page for your team size. Vercel environment variables themselves are part of every Vercel plan.

Sources

  1. 01Doppler docs: Vercel (updated 25 September 2026)Accessed 16 Oct 2026
  2. 02Vercel Marketplace: DopplerAccessed 16 Oct 2026
  3. 03Vercel docs: Environment variablesAccessed 16 Oct 2026
  4. 04Vercel docs: Config and Secret environment variablesAccessed 16 Oct 2026
  5. 05Vercel docs: IntegrationsAccessed 16 Oct 2026
Shivanath Devinarayanan, founder of Mindcat

Written by

Shivanath Devinarayanan

Founder, Mindcat Consulting · Salesforce MVP Hall of Fame

Runs 200+ agents in production. Reads every brief that comes in and signs the work that goes out.

About Shivanath

Build It, Preview It, Run It · the written assessment

We work in real estate and right now, leads go cold before anyone replies.

Industry
Problem

Brief: Real estate. Leads from portals and WhatsApp. Follow-up has no owner. An agent on a named process. A reviewer on the exceptions. From: /blog/doppler-vercel-integration-secrets.