← DevTools/Verify
Docs

Which environment variables am I missing?

The failure is always the same shape: it works locally, it fails on deploy, and the cause is one key nobody added to the environment. The reverse is worse — a real credential committed to the example file.

Comparing key lists takes a second and catches both.

A worked example

The verdict below is produced by running the verifier on this input — the same code the tool runs in your browser, not a description of it written alongside.

.env.local

DATABASE_URL=postgres://localhost:5432/app
NEXT_PUBLIC_APP_URL=http://localhost:3000

.env.example

DATABASE_URL=
NEXT_PUBLIC_APP_URL=
STRIPE_WEBHOOK_SECRET=
FAIL1 required key(s) missing from .env.local.
  • The example file declares this key but the local environment does not define it. The app reads undefined at runtime.

    Suggested fix: Add STRIPE_WEBHOOK_SECRET= to .env.local.

Open the .env Comparer

This link does not carry the files. Environment values are treated as secrets and are never put in a URL — use “Load an example” in the tool for the files above.

What this checks

  • Keys the example declares that your local file lacks, which is the deploy that fails.
  • Keys you have locally that the example never mentions, which is the one your colleague will be missing.
  • Duplicate keys, where the later one silently wins.
  • Values in .env.example that look like real credentials rather than placeholders.

What it does not tell you

  • That a value is correct. A key can be present and still hold the wrong database URL.
  • That a credential is live. The check is shape-based, so a convincing placeholder is flagged and a sloppy real key might not be.

Questions

Are my environment variables uploaded?

No. Both files are parsed in your browser. Values are treated as secrets throughout: they are never included in a share link, never stored in history, and redacted from any exported findings.

Can I compare against what is actually deployed?

Yes — paste the key names from your host as a third list. Names alone are enough to find drift, so you never need to paste production values anywhere.

Why flag things that are only in my local file?

Because the example file is how the next person sets up the project. A key that only exists on your machine is a setup step that is not written down anywhere.

Why is my JWT rejected?Will my cron job skip or run twice on daylight saving?Paste anything and let it pick the verifier

Everything runs in your browser — nothing you paste is uploaded. Read more about local processing or this verifier in the docs.