Pre-launch check
Start hereFor founders about to let real users in.
$490
- Keys and secrets in the browser or repo
- Who can read and change whose data
- Login, roles and admin routes
- Errors, retries and rate limits
- Debug mode, headers, deploy path
Default protection state comes from Vercel's own knowledge-base guide and the usage page, which links a changelog entry titled Deployment Protection is now enabled by default for new projects.
Vercel hosts frontend frameworks with Git-based preview and production deployments, encrypted environment variables scoped per environment, and deployment protection that is on for non-production deployments by default. Firewall rulesets for bots are off by default.
The Vercel-specific tests are about exposure. Which preview deployments are public. Which environment variables are prefixed for the browser. Whether the production branch deploys on every push without a check. What headers the production site sends.
Each row is taken from the vendor's documentation on the date shown. Defaults change; the date is the claim.
| Area | Default | Source |
|---|---|---|
| Env var encryption | Environment variables are encrypted at rest and visible to any user with access to the project; changes apply only to new deployments. Total size is limited to 64 KB per deployment. | docs · verified 2026-09-21 |
| Sensitive env vars | Variables marked Sensitive cannot be read back after creation (preview and production only) and values of 32 characters or more are redacted from build logs; owners can enforce Sensitive for all new variables. | docs · verified 2026-09-21 |
| Preview deployments public by default? | Per Vercel's guide, Vercel Authentication is enabled by default for all deployments except the most recent production deployment. Deployments that are not locked down and have no custom domain are public and indexable by search engines. | docs · verified 2026-09-21 |
| Deployment protection | Protection methods are Vercel Authentication (all plans), Password Protection (Pro, $20 per project per month; not on Hobby), Passport and Trusted IPs (Enterprise). Standard Protection covers everything except production domains. | docs · verified 2026-09-21 |
| HTTPS | Every deployment is served over HTTPS with automatically generated certificates. | docs · verified 2026-09-21 |
| Framework prefix | Framework environment variables such as VERCEL_URL are exposed with the framework prefix, for example NEXT_PUBLIC_VERCEL_URL for Next.js. | docs · verified 2026-09-21 |
Documentation home: vercel.com/docs
26 patterns in the catalogue name Vercel; the most severe are listed here across secrets and keys, login and permissions, payments, ai features, deploy and config. Attribution is descriptive: the default stack makes the pattern reachable, or a public incident names it.
The build writes the secret's value into public JavaScript, so anyone who loads the site can read it, and a redeploy with the same variable name republishes it.
Everyone who can see the repository, now or later, holds working keys to the database, payment account and model provider, and the keys stay in history after the file is deleted.
Anyone who opens the app can copy the key from the downloaded JavaScript and read, change or delete every row in every table.
A stranger who types /admin or /api/admin into the address bar can see or change everything the owner can.
Anyone who calls the API directly, or edits the page in developer tools, gets the data and actions the screen was hiding.
Anyone who finds the webhook URL can post a made-up payment-succeeded event and get an order fulfilled or a plan activated for a user of their choosing, without paying.
Anyone who views the page source can copy the key and run their own workloads on your account until the bill or the provider stops them.
Whoever can influence the model's input can delete tables, email your whole customer list, or trigger any other action the app has wired up.
Anything the agent decides to run, or is tricked into running by text it reads, executes with the same power you have, including dropping tables or moving money.
Anyone who views the page source can take the key and run up charges, send messages or pull data on your account until the key is revoked.
Keys, session tokens and database connection strings end up in log files and in HTTP responses that anyone can trigger, which hands out credentials and a map of the system's internals.
An old reset email found in a shared inbox, a forwarded thread or a breached mailbox lets someone take over the account months later.
Someone who once had a user's token, on a shared computer or through a leak, keeps access after the user logs out or changes their password.
Customers can pay with Stripe's published test card numbers, the app fulfils the order, and no money ever reaches your account.
A script can hit the route in a loop overnight and the bill lands on your card, or the provider pauses your account mid-day when its own cap trips and every user sees errors.
Two days after announcing a SaaS built with Cursor and no hand-written code, its founder reported subscription bypasses, maxed-out API keys and unwanted database writes; he shut the app down three days later.
Mar 2025 · Leo (Enrichlead founder) · all sources
Lovable reported that from 3 February to 20 April 2026 a backend regression let any logged-in Lovable user read the chat history and source code of public projects; a fix shipped within two hours.
Apr 2026 · Lovable · all sources
On the Base44 app builder, undocumented registration and one-time-password endpoints accepted a non-secret app_id, so anyone could create a verified account on a private app; Wix fixed it within 24 hours.
Jul 2025 · Wiz Research · all sources
In July 2025 a Replit agent deleted data from a production database during a user-declared code freeze; Replit's CEO confirmed it, said backups allowed a restore, and announced automatic dev and production database separation.
Jul 2025 · Jason Lemkin (SaaStr) · all sources
Each entry links to its primary source in the evidence list. What to do about it is the self-check below.
Stated from the vendor's documentation. The limits are the vendor's scope statements, not judgements.
Deployment Protection
Vercel Authentication, Standard Protection and All Deployments scopes are included on Hobby, Pro and Enterprise; access requests, shareable links and protection bypass for automation are documented.
Where it stops: Disabling Vercel Authentication unprotects all existing deployments; shareable links and the automation bypass header skip the check; Password Protection is not available on Hobby.
vendor docs · verified 2026-09-21
Platform-wide firewall (DDoS mitigation)
Automated DDoS mitigation for all deployments on every plan, with no configuration required.
Where it stops: Application-level rules need the WAF; the platform layer blocks abnormal traffic volumes rather than logic flaws in your app.
vendor docs · verified 2026-09-21
Vercel WAF
Custom rules, IP blocking, Attack Mode and managed rulesets (OWASP Core Ruleset, Bot Protection, AI Bots) configured per project.
Where it stops: Bot Protection and AI Bots rulesets are inactive by default; OWASP rules must be enabled and can run in Log mode first.
vendor docs · verified 2026-09-21
Sensitive environment variables
Non-readable values after creation, build log redaction and a team policy to make new variables sensitive.
Where it stops: Not available for the Development environment; redaction applies to values of 32 characters or longer.
vendor docs · verified 2026-09-21
The critical patterns first. Each uses the dashboard and your browser.
.env files, list every variable whose name starts with NEXT_PUBLIC_.NEXT_PUBLIC_ variable holding a server-only key, or a search hit for that key's value in a loaded script..env, .env.local, .env.production, serviceAccountKey.json or firebase-adminsdk files.sk_live, sk-, service_role, BEGIN PRIVATE KEY and password=.git log --all -p -S sk_live -- . | head. Any output means a live key has been committed at some point.service_role and then for sb_secret_.supabase.co, and read the apikey header under Request Headers.Vercel pre-launch checklist
26 checks, in the order we run them. Usable without buying anything.
Self-check tool
Answer questions about your setup and get the patterns that apply, ordered by severity. Runs in your browser; nothing is sent.
For founders about to let real users in.
$490
For anyone who wants the three riskiest areas checked fast.
$290
All packages and prices. Every report includes a re-check after your fixes.
Check deployment protection for previews, environment variable scoping (Development, Preview, Production), the production branch's checks before deploy, and response headers. Vercel's Firewall and WAF rules are available; bot protection is off until enabled.
Only variables your framework exposes to the browser (NEXT_PUBLIC_ for Next.js, VITE_ for Vite, EXPO_PUBLIC_ for Expo) reach the bundle. Open the deployed JavaScript and search for the values of your secrets; nothing should match.
Vercel's guide states that Vercel Authentication is on for all deployments except the latest production one by default, so previews require a Vercel login. Confirm the setting in Project Settings and test a preview URL from a private window.