Vercel deployment and configuration for Adynato projects. Covers environment variables, vercel.json, project linking, common errors like VERCEL_ORG_ID/VERCEL_PROJECT_ID, and CI/CD setup. Use when deploying to Vercel, configuring builds, or troubleshooting deployment issues.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
npx agent-skills-cli listSkill Instructions
name: adynato-vercel description: Vercel deployment and configuration for Adynato projects. Covers environment variables, vercel.json, project linking, common errors like VERCEL_ORG_ID/VERCEL_PROJECT_ID, and CI/CD setup. Use when deploying to Vercel, configuring builds, or troubleshooting deployment issues.
Vercel Skill
Use this skill when deploying Adynato projects to Vercel or troubleshooting deployment issues.
Common Errors
VERCEL_ORG_ID and VERCEL_PROJECT_ID
Error: You specified `VERCEL_ORG_ID` but you forgot to specify `VERCEL_PROJECT_ID`.
You need to specify both to deploy to a custom project.
Fix: Both environment variables must be set together:
# Get these from Vercel dashboard or .vercel/project.json
export VERCEL_ORG_ID="team_xxxxxx"
export VERCEL_PROJECT_ID="prj_xxxxxx"
Or in CI (GitHub Actions):
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
Finding your IDs:
# After linking a project, check .vercel/project.json
cat .vercel/project.json
# {"orgId":"team_xxx","projectId":"prj_xxx"}
Project Not Linked
Error: Your codebase isn't linked to a project on Vercel.
Fix:
# Interactive linking
vercel link
# Or with flags for CI
vercel link --yes --project=my-project --scope=my-team
Build Command Failed
Error: Command "npm run build" exited with 1
Debug steps:
- Check build logs in Vercel dashboard
- Run build locally:
npm run build - Check for missing environment variables
- Verify Node.js version matches (
enginesin package.json)
Environment Variable Not Found
Error: Environment variable "DATABASE_URL" not found
Fix: Add to Vercel dashboard or via CLI:
# Add single variable
vercel env add DATABASE_URL production
# Pull all env vars locally
vercel env pull .env.local
Project Configuration
vercel.json
{
"buildCommand": "npm run build",
"outputDirectory": ".next",
"installCommand": "npm install",
"framework": "nextjs",
"regions": ["iad1"],
"functions": {
"app/api/**/*.ts": {
"memory": 1024,
"maxDuration": 30
}
},
"headers": [
{
"source": "/api/(.*)",
"headers": [
{ "key": "Access-Control-Allow-Origin", "value": "*" }
]
}
],
"redirects": [
{
"source": "/old-page",
"destination": "/new-page",
"permanent": true
}
],
"rewrites": [
{
"source": "/blog/:slug",
"destination": "/posts/:slug"
}
]
}
Framework Presets
Vercel auto-detects, but you can override:
| Framework | framework value | Output Directory |
|---|---|---|
| Next.js | nextjs | .next |
| Remix | remix | build |
| Astro | astro | dist |
| Vite | vite | dist |
| Create React App | create-react-app | build |
Environment Variables
Scopes
| Scope | When Used |
|---|---|
production | Production deployments (main branch) |
preview | Preview deployments (PRs, other branches) |
development | Local development (vercel dev) |
Managing Env Vars
# Add variable to all environments
vercel env add SECRET_KEY
# Add to specific environment
vercel env add SECRET_KEY production
# List all variables
vercel env ls
# Remove variable
vercel env rm SECRET_KEY production
# Pull to local .env file
vercel env pull .env.local
Sensitive vs Plain
- Sensitive: Encrypted, not visible in dashboard after creation
- Plain: Visible, editable in dashboard
# Add as sensitive (default for secrets)
vercel env add DATABASE_URL --sensitive
CLI Commands
Deployment
# Deploy to preview
vercel
# Deploy to production
vercel --prod
# Deploy without prompts (CI)
vercel --yes --prod
# Deploy with specific env
vercel --env NODE_ENV=production
Project Management
# Link to existing project
vercel link
# List projects
vercel projects ls
# Remove project
vercel projects rm my-project
# List deployments
vercel ls
# Inspect deployment
vercel inspect <deployment-url>
# View logs
vercel logs <deployment-url>
# Rollback
vercel rollback <deployment-url>
Domains
# Add domain
vercel domains add example.com
# List domains
vercel domains ls
# Remove domain
vercel domains rm example.com
# Add domain to project
vercel alias <deployment-url> example.com
CI/CD with GitHub Actions
Basic Deployment
# .github/workflows/deploy.yml
name: Deploy to Vercel
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Vercel CLI
run: npm install -g vercel
- name: Pull Vercel Environment
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
- name: Build
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
- name: Deploy
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
Preview on PR
- name: Deploy Preview
if: github.event_name == 'pull_request'
run: |
url=$(vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }})
echo "Preview URL: $url"
Monorepo Setup
Root vercel.json for Monorepo
{
"projects": [
{ "src": "apps/web", "use": "@vercel/next" },
{ "src": "apps/api", "use": "@vercel/node" }
]
}
Deploying Specific App
# Set root directory in project settings or:
vercel --cwd apps/web
Turborepo Integration
# vercel.json at root
{
"buildCommand": "cd ../.. && npx turbo run build --filter=web",
"installCommand": "cd ../.. && npm install"
}
Troubleshooting
Check Deployment Status
# List recent deployments
vercel ls
# Get deployment details
vercel inspect <url>
# Stream logs
vercel logs <url> --follow
Function Timeouts
Default is 10s for Hobby, 60s for Pro. Increase in vercel.json:
{
"functions": {
"app/api/slow-endpoint/route.ts": {
"maxDuration": 60
}
}
}
Memory Issues
{
"functions": {
"app/api/heavy-compute/route.ts": {
"memory": 3008
}
}
}
Build Cache Issues
# Force rebuild without cache
vercel --force
Or in dashboard: Deployments β Redeploy β "Redeploy with existing Build Cache" unchecked.
More by adynato
View allCloudflare Workers and Pages deployment for Adynato projects. Covers wrangler CLI, reading logs for debugging, KV/D1/R2 storage, environment variables, and common errors. Use when deploying to Cloudflare, debugging workers, or configuring edge functions.
Web development conventions for Adynato projects. Covers image optimization with img4web, asset management, component patterns, styling, and performance best practices. Use when building or modifying web applications, adding images/assets, or creating UI components.
Handles SEO requirements for all web content including blogs, landing pages, and documentation. Covers LD+JSON schema.org structured data, internal backlinks strategy, further reading sections, meta tags, and Open Graph. Use when creating or editing any public-facing web content, blog posts, or pages that need search visibility.
Mobile app development conventions for Adynato projects using React Native and Expo. Covers navigation patterns, native APIs, performance optimization, and platform-specific considerations. Use when building or modifying mobile applications.
