How we differ

Vercel Deployment Protection and Jiayang Cloud

Updated

On Vercel, Standard Protection covers every deployment but your production domains, which stay public unless you choose All Deployments. Viewers sign in with Vercel accounts, and passing a verified identity to your app takes Passport on Enterprise. On Jiayang Cloud every app starts private, anyone you share it with by email can sign in without an account, and your app gets a signed token saying who is calling, on every plan.

What follows about Vercel comes from Vercel's docs and knowledge base, read on 16 and 17 October 2026 and listed at the end.

What Vercel's protection covers

Side by side, for an internal app

WhatVercelJiayang Cloud
Production, until you change itProduction domains are public, unless you choose All DeploymentsPrivate. Only the people you share it with get in. A public path, for webhooks, has to be added by a person
ViewersVercel users with access, or anyone with a shareable link or the passwordAny email address, everyone at your company's domain, or a group. No account needed
Your own identity providerPassport, on EnterpriseSingle sign-on, on Enterprise, and on Business for early customers for a limited time
The caller, in your codePassport's verified identity, on EnterpriseA signed token on every plan, checked by SDKs for Node, Python, Go and Rust
Removing someoneGranted access can be revoked at any timeWithin 60 seconds, open connections included
What it costs to protectVercel Authentication on every plan. A password at $20 a month per project on ProPart of every plan, priced per workspace

When Vercel is the better fit

For public sites and front ends on Vercel's network, and for previews a team reviews and comments on before they go live. If an app's viewers are all on your Vercel team already, Vercel Authentication may be all you need.

Move a Vercel project here

jiayang import reads the project with a Vercel token you paste once, clones its repository, and sets it up as a new app: its build settings, production variables and cron jobs, which become schedules. It shows you the plan and asks before it changes anything. A dry run stops after the plan, which looks like this, shortened:

jiayang import vercel:expense-tracker acme/expenses --dry-run
Importing expense-tracker from Vercel into acme/expenses.

Code: https://github.com/acme-finance/expense-tracker.git (main), cloned into expense-tracker, with the app in web
Runs as: a static site, served by Workers (Vite)

Environment variables (2)
  REGION
  VITE_API_BASE

Secrets (2)
  OPENAI_API_KEY for OpenAI, added to requests to api.openai.com, Vercel keeps it write-only, so its value has to come from you
  STRIPE_SECRET_KEY for Stripe, added to requests to api.stripe.com

Schedules, added once it's deployed (1)
  GET /api/cron/digest at "0 7 * * 1-5" (UTC)

That was a dry run, so nothing was made, written or deployed.

Only production's values come over. A key for an API we know becomes a secret that our outbound proxy adds to the app's requests, so the code never holds it. Next.js runs as a container unless it uses OpenNext. Vercel's Deployment Protection has nothing to carry over: only the people you share the app with can open it. See Import from Vercel.

Sources

  1. Deployment Protection on Vercel, Vercel's docs, updated 15 September 2026. Checked 17 October 2026.
  2. How to lock down deployments on Vercel and v0, Vercel's knowledge base, published 3 November 2025. Checked 17 October 2026.
  3. Restrict access to deployments with Vercel Authentication, Vercel's docs, updated 15 September 2026. Checked 17 October 2026.
  4. Restrict access to deployments with Passport, Vercel's docs, updated 21 September 2026. Checked 16 October 2026.

Next