
adynato-vercel
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 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.
You Might Also Like
Related Skills

create-pr
Creates GitHub pull requests with properly formatted titles that pass the check-pr-title CI validation. Use when creating PRs, submitting changes for review, or when the user says /pr or asks to create a pull request.
n8n-io
electron-chromium-upgrade
Guide for performing Chromium version upgrades in the Electron project. Use when working on the roller/chromium/main branch to fix patch conflicts during `e sync --3`. Covers the patch application workflow, conflict resolution, analyzing upstream Chromium changes, and proper commit formatting for patch fixes.
electron
pr-creator
Use this skill when asked to create a pull request (PR). It ensures all PRs follow the repository's established templates and standards.
google-gemini
clawdhub
Use the ClawdHub CLI to search, install, update, and publish agent skills from clawdhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawdhub CLI.
moltbot
tmux
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
moltbot
create-pull-request
Create a GitHub pull request following project conventions. Use when the user asks to create a PR, submit changes for review, or open a pull request. Handles commit analysis, branch management, and PR creation using the gh CLI tool.
cline