vercel-deploy

Zero-auth deployment to Vercel with automatic framework detection. Deploy any web application with a single command and receive preview URLs, claim URLs, and deployment metadata.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "vercel-deploy" with this command: npx skills add oimiragieo/agent-studio/oimiragieo-agent-studio-vercel-deploy

Vercel Deploy

Zero-auth deployment to Vercel with automatic framework detection. Deploy any web application with a single command and receive preview URLs, claim URLs, and deployment metadata.

When to Apply

Use this skill when:

  • Deploying a web application to Vercel for preview or production

  • Setting up a deployment pipeline for a new project

  • Creating preview deployments for pull request review

  • Testing production builds in a live environment

  • Demonstrating a prototype or proof of concept

Supported Frameworks

Vercel auto-detects and configures builds for these frameworks:

Framework Detection Build Command

Next.js next.config.*

next build

Vite vite.config.*

vite build

Remix remix.config.*

remix build

SvelteKit svelte.config.*

vite build

Astro astro.config.*

astro build

Nuxt nuxt.config.*

nuxt build

Gatsby gatsby-config.*

gatsby build

Angular angular.json

ng build

Vue CLI vue.config.*

vue-cli-service build

Create React App react-scripts in deps react-scripts build

Ember ember-cli-build.js

ember build

Hugo config.toml / hugo.toml

hugo

Jekyll _config.yml

jekyll build

Eleventy .eleventy.js

eleventy

Docusaurus docusaurus.config.*

docusaurus build

Static HTML index.html at root None

Deployment Workflow

Step 1: Prerequisites

Ensure the Vercel CLI is installed:

Install globally

npm install -g vercel

Or use npx (no install needed)

npx vercel

Step 2: Project Setup (First Time Only)

For new projects not yet linked to Vercel:

Interactive setup -- creates .vercel/project.json

vercel link

Or create a new project

vercel --yes

Step 3: Deploy

Preview Deployment (Default)

Deploy to preview environment

vercel

Output:

Vercel CLI 34.x.x

Linked to username/project-name

Inspect: https://vercel.com/username/project-name/abcdef

Preview: https://project-name-abc123.vercel.app

Production Deployment

Deploy to production

vercel --prod

Output includes production URL:

Production: https://project-name.vercel.app

Zero-Auth Deployment (Agent Mode)

For automated deployments without authentication prompts:

Using VERCEL_TOKEN environment variable

VERCEL_TOKEN=your-token vercel --yes --token=$VERCEL_TOKEN

Or with npx for zero-install

VERCEL_TOKEN=your-token npx vercel --yes --token=$VERCEL_TOKEN

Step 4: Deployment Output

Successful deployments return JSON-compatible metadata:

{ "url": "https://project-name-abc123.vercel.app", "inspectUrl": "https://vercel.com/team/project/deployment-id", "projectId": "prj_abc123", "deploymentId": "dpl_abc123", "readyState": "READY" }

Use --json flag for machine-readable output:

vercel --json

Step 5: Post-Deployment Verification

Check deployment status

vercel inspect <deployment-url>

View deployment logs

vercel logs <deployment-url>

List recent deployments

vercel list

Configuration Options

Environment Variables

Set environment variables for deployment

vercel env add VARIABLE_NAME production vercel env add VARIABLE_NAME preview vercel env add VARIABLE_NAME development

Or pass inline

vercel -e KEY=value -e KEY2=value2

Build Configuration

Override auto-detected settings in vercel.json :

{ "buildCommand": "npm run build", "outputDirectory": "dist", "installCommand": "npm install", "framework": "vite", "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }] }

Custom Domains

Add a custom domain

vercel domains add example.com

Assign domain to project

vercel alias <deployment-url> example.com

Framework-Specific Patterns

Next.js

{ "framework": "nextjs", "buildCommand": "next build", "outputDirectory": ".next" }

Next.js deployments automatically enable:

  • Edge Runtime for middleware

  • ISR (Incremental Static Regeneration)

  • Image Optimization via next/image

  • Server Actions

Vite / React SPA

{ "framework": "vite", "buildCommand": "vite build", "outputDirectory": "dist", "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }] }

SvelteKit

{ "framework": "sveltekit", "buildCommand": "vite build", "outputDirectory": ".svelte-kit/output" }

SvelteKit uses the @sveltejs/adapter-vercel adapter for optimal deployment.

Deployment Strategies

Preview per Pull Request

Configure GitHub integration for automatic preview deployments:

  • Connect repository in Vercel dashboard

  • Every PR gets a unique preview URL

  • Comments added to PR with preview link

  • Preview is torn down when PR is closed

Staged Rollouts

Deploy to staging first

vercel --env ENVIRONMENT=staging

Promote to production after validation

vercel promote <deployment-url>

Rollback

List recent deployments

vercel list

Rollback to a previous deployment

vercel rollback <deployment-url>

Troubleshooting

Build Fails

  • Check build logs: vercel logs <url>

  • Verify buildCommand matches local build

  • Check environment variables are set for the target environment

  • Ensure Node.js version matches (use engines in package.json)

404 on Client-Side Routes

Add rewrites for SPA frameworks:

{ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }] }

Large Bundle Warnings

  • Enable tree-shaking in bundler config

  • Use dynamic imports for heavy dependencies

  • Check Vercel's bundle analysis: vercel inspect --logs

Timeout Issues

  • Serverless functions: Default 10s timeout (configurable up to 300s on Pro)

  • Edge functions: 25ms CPU time limit (wall-clock can be longer with I/O)

  • Static generation: 45s default timeout

{ "functions": { "api/heavy-route.ts": { "maxDuration": 60 } } }

Security Considerations

  • Never commit VERCEL_TOKEN to version control

  • Use environment variables for secrets (not hardcoded)

  • Enable Vercel's DDoS protection for production

  • Use vercel env pull to sync environment variables locally

  • Review deployment protection settings for preview URLs

References

  • Vercel CLI Documentation

  • Vercel Deployment Documentation

  • Framework-Specific Guides

Iron Laws

  • ALWAYS test the build locally before deploying to ensure the deployment will succeed

  • NEVER deploy to production without first creating and validating a preview deployment

  • ALWAYS verify environment variables are configured in the Vercel project before deploying

  • NEVER store sensitive secrets in deployment commands or public URLs

  • ALWAYS check the deployment logs immediately after deployment to confirm the build succeeded

Anti-Patterns

Anti-Pattern Why It Fails Correct Approach

Deploying without local build test Build fails in Vercel, wasted deployment attempt Run build locally before vercel deploy

Skipping preview before production Regressions reach users before detection Always validate preview URL first

Hardcoded env vars in deploy command Secrets exposed in shell history and logs Configure env vars in Vercel project settings

Ignoring post-deploy build logs Silent failures go undetected Always check logs after deployment

No framework detection verification Wrong settings cause build failures Verify auto-detected framework in project config

Framework Detection Patterns

Vercel CLI auto-detects frameworks by checking project files in this priority order:

Framework Detection File Build Command Output Dir

Next.js next.config.*

next build

.next

Remix remix.config.*

remix build

build

SvelteKit svelte.config.*

vite build

build

Astro astro.config.*

astro build

dist

Nuxt nuxt.config.*

nuxt build

.output

Vite vite.config.*

vite build

dist

Gatsby gatsby-config.*

gatsby build

public

Angular angular.json

ng build

dist

Vue CLI vue.config.*

vue-cli-service build

dist

Create React App react-scripts in pkg react-scripts build

build

Docusaurus docusaurus.config.*

docusaurus build

build

Eleventy .eleventy.js

eleventy

_site

Hugo config.toml (Hugo) hugo

public

Jekyll _config.yml (Jekyll) jekyll build

_site

Static HTML index.html only none .

When auto-detection fails, specify framework explicitly:

vercel --build-env FRAMEWORK_PRESET=nextjs

Environment Variable Management

Setting Environment Variables

Add env var (prompts for value)

vercel env add MY_VAR production

Add from .env file

vercel env pull .env.local

List all env vars

vercel env ls

Remove env var

vercel env rm MY_VAR production

Environment Scopes

Scope When Applied Use For

production

Production deploys only API keys, secrets

preview

Preview deploys (PRs) Staging configs

development

vercel dev only Local development

Monorepo Configuration

For pnpm/npm/yarn workspaces:

{ "buildCommand": "cd ../.. && pnpm build --filter=my-app", "installCommand": "pnpm install --filter=my-app...", "rootDirectory": "packages/my-app" }

Set root directory in Vercel dashboard or vercel.json :

{ "framework": "nextjs", "buildCommand": "pnpm turbo build --filter=web", "outputDirectory": "apps/web/.next" }

Local Development

vercel dev — runs your project locally with Vercel's edge network simulation

  • Supports: serverless functions, edge functions, environment variables

  • Port: defaults to 3000, use vercel dev --listen 3001 for custom port

  • Hot reload: automatic for Next.js, SvelteKit, Astro, Nuxt

vercel dev # Start local dev server on port 3000 vercel dev --listen 3001 # Custom port

vercel.json Configuration Patterns

{ "rewrites": [{ "source": "/api/(.)", "destination": "/api/index" }], "redirects": [{ "source": "/old", "destination": "/new", "permanent": true }], "headers": [{ "source": "/(.)", "headers": [{ "key": "X-Frame-Options", "value": "DENY" }] }], "functions": { "api/heavy.js": { "memory": 3009, "maxDuration": 60 } }, "crons": [{ "path": "/api/cron", "schedule": "0 * * * *" }] }

Team & Project Config

vercel teams ls # List teams vercel switch <team-slug> # Switch active team vercel link # Link local dir to Vercel project vercel project ls # List projects in current team

Memory Protocol (MANDATORY)

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md

  • Issue found -> .claude/context/memory/issues.md

  • Decision made -> .claude/context/memory/decisions.md

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

filesystem

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

slack-notifications

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

chrome-browser

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

diagram-generator

No summary provided by upstream source.

Repository SourceNeeds Review