.claude/skills/vercel-deployment/SKILL.md
Master Vercel deployment for RidenDine web and admin Next.js apps. Use when: (1) deploying to production, (2) configuring environment variables, (3) setting up preview deployments, (4) debugging build failures, (5) configuring domains, (6) seeing "No Next.js version detected" error in Vercel builds, (7) setting up monorepo with separate projects on free tier. Key insight: Vercel monorepos require Root Directory configuration via dashboard (not vercel.json), GitHub integration auto-detects monorepo structure, free tier allows multiple projects.
npx skillsauth add Ritenoob/ridedine vercel-deploymentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
RidenDine has two Next.js 15 apps (web, admin) deployed to Vercel. Each needs separate Vercel projects, environment variables, and domain configuration. Preview deployments for PRs, production deployments on main branch.
Use this skill when:
Create Vercel Project:
# Install Vercel CLI
pnpm add -g vercel
# Link web app
cd apps/web
vercel link
# Link admin app
cd apps/admin
vercel link
Project Configuration (vercel.json):
Keep per-app vercel.json minimal to allow Vercel's Next.js builder to handle install/build.
{
"framework": "nextjs"
}
Web App (.env.production):
NEXT_PUBLIC_SUPABASE_URL=https://<project-id>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<production-anon-key>
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_...
STRIPE_SECRET_KEY=sk_live_...
Set via Vercel Dashboard:
Or via CLI:
vercel env add NEXT_PUBLIC_SUPABASE_URL production
vercel env add STRIPE_SECRET_KEY production
Automatic Deployment:
# Push to main → production deployment
git push origin main
# Push to feature branch → preview deployment
git push origin feature/new-feature
Manual Deployment:
cd apps/web
vercel --prod # Deploy to production
vercel # Deploy to preview
pnpm Monorepo Support:
// apps/web/package.json
{
"scripts": {
"build": "next build",
"dev": "next dev",
"start": "next start"
}
}
Install Command (vercel.json):
Do not set this in per-app vercel.json. Leave install commands blank so Vercel runs pnpm from the repo root.
Problem: "No Next.js version detected" error
When deploying from a monorepo subdirectory, Vercel looks for next in the repository root's package.json. It cannot be configured via vercel.json alone.
Solution: Set Root Directory via Dashboard
apps/admin or apps/webAlternative: GitHub Integration (Recommended for Free Tier)
GitHub integration auto-detects monorepo structure:
Free Tier Strategy:
✅ Separate projects (admin + web) - Recommended
❌ Single project with routing - NOT recommended
Issue: "No Next.js version detected"
Cause: Root Directory not configured for monorepo
Fix: Set Root Directory to subdirectory path via Vercel dashboard (see Pattern 5)
Issue: Module not found
Fix: Verify workspace dependencies installed, check tsconfig paths
Issue: Environment variable undefined
Fix: Add to Vercel dashboard, redeploy
Issue: Build timeout
Fix: Optimize build time, increase timeout in Vercel settings
development
Integrate Coinbase crypto payments into payment systems. Use when: (1) adding crypto payment support, (2) building onchain features, (3) implementing wallet functionality. Covers Coinbase Commerce (payment processor) vs CDP (developer platform), Server Wallets, Embedded Wallets, and multi-network support.
development
Add Apple Pay and Google Pay to Stripe checkout. Use when: (1) adding mobile wallet payments, (2) improving mobile conversion, (3) implementing one-tap checkout. Stripe Payment Request Button automatically detects device capabilities and shows Apple Pay (Safari/iOS) or Google Pay (Chrome/Android).
development
Master Supabase Row Level Security (RLS) for RidenDine. Use when: (1) adding new tables, (2) modifying RLS policies, (3) debugging access control issues, (4) role-based data access. Key insight: All tables use RLS with role-based policies from profiles.role column.
tools
Master Supabase database migrations for RidenDine. Use when: (1) creating new migrations, (2) modifying schema, (3) adding RLS policies, (4) rolling back changes, (5) deploying to production. Key insight: Migrations are SQL files in backend/supabase/migrations/ executed in lexicographical order. Use supabase CLI to generate timestamps and apply migrations.