Skip to content
cccskills
FreePublished on GitHub

deployment-infrastructure

Deploy to Vercel/Cloudflare, manage environment variables, troubleshoot builds, and handle rollbacks.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Deployment & Infrastructure

When to use this skill

  • Deploying the portfolio to Vercel or Cloudflare
  • Troubleshooting failed builds or deployments
  • Managing environment variables across environments
  • Rolling back to a previous deployment
  • Configuring domains, SSL, or edge functions
  • Debugging build-time vs runtime errors

Workflow

1. Pre-deployment checks

Run the full verification suite before any deployment:

npx tsc --noEmit          # TypeScript must pass
npm run lint               # ESLint must pass
npm run test -- --run      # Tests must pass
npm run doctor             # React-doctor must be 100/100
npm run build              # Build must succeed

If any step fails, fix it before deploying. Never deploy broken code.

2. Vercel deployment

Local preview (production-like):

npm run build && npm run start

Vercel CLI deploy:

npx vercel --prod          # Production deployment
npx vercel                 # Preview deployment (branch)

Vercel environment variables:

VariableEnvironmentRequired
NEXT_PUBLIC_SANITY_PROJECT_IDAllYes
NEXT_PUBLIC_SANITY_DATASETAllYes
SANITY_API_READ_TOKENAllYes
SANITY_REVALIDATE_SECRETAllYes
NEXT_PUBLIC_UMAMI_WEBSITE_IDProductionNo
NEXT_PUBLIC_UMAMI_SCRIPT_URLProductionNo
NEXT_PUBLIC_UMAMI_HOST_URLProductionNo

Check env vars are set:

npx vercel env ls

3. Cloudflare deployment

The repo uses opennextjs-cloudflare for Cloudflare compatibility:

npm run cloudflare:build     # Build for Cloudflare
npm run cloudflare:dev       # Local Cloudflare dev
npm run cloudflare:deploy    # Deploy to Cloudflare

Cloudflare-specific notes:

  • output: 'standalone' is disabled on Windows (isWindows check in next.config.js)
  • Edge runtime is NOT used -- the repo uses Node.js runtime for API routes
  • wrangler.toml configures Workers bindings

4. Build troubleshooting

Common build errors:

ErrorCauseFix
Module not foundMissing dependencynpm install
Type errorTypeScript strict modeFix the type error in the source
Hydration mismatchServer/client HTML differCheck useEffect guards, mounted state
Circular dependencyImport cycleRefactor to break the cycle
ENOMEMOut of memoryIncrease Node memory: NODE_OPTIONS="--max-old-space-size=4096"

Build analysis:

ANALYZE=true npm run build   # Bundle analyzer (if configured)

5. Rollback procedure

Vercel rollback:

npx vercel rollback          # Roll back to previous deployment
npx vercel rollback <url>    # Roll back to specific deployment

Git rollback:

git log --oneline -10        # Find the commit to roll back to
git revert <commit-hash>     # Create a revert commit
git push                     # Trigger redeployment

Emergency: force deploy last known good:

git checkout <good-commit> -- .
git commit -m "chore: emergency rollback to <good-commit>"
git push

6. Domain and SSL

Vercel manages SSL automatically. For custom domains:

npx vercel domains add <domain>

Verify DNS records point to Vercel's nameservers or use CNAME to cname.vercel-dns.com.

Common mistakes

  • Deploying without running npm run build locally first
  • Forgetting to set environment variables in the Vercel dashboard
  • Using console.log in production code (use reportWebVitals instead)
  • Not testing the production build locally before pushing

Delivery checks

  • npm run build succeeds locally
  • All environment variables are set in the target environment
  • Production URL loads correctly
  • No console errors in browser DevTools
  • Service worker registers correctly (if applicable)
  • Sanity data loads and revalidation works
  • OG images and meta tags render correctly

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Audit and fix accessibility issues across the portfolio to ensure WCAG 2.1 AA compliance.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Creates a new blog post document in the Sanity studio. Use when the user wants to write a blog post, publish an article, or schedule a future post.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Creates a new certification document in the Sanity studio. Use when the user wants to add a credential, certificate, or professional accreditation to the Certifications collection.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Adds a new skill MD file to the studio's skills collection. Use when the user wants to author a new step-by-step recipe for the studio's in-app Skills tool or the .agents mirror.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Creates a new project document in the Sanity studio. Use when the user wants to add a new portfolio project, a case study, or a work sample to the Projects collection.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Creates a new experience document in the Sanity studio. Use when the user wants to add a job, role, internship, or work history entry to the Experience collection.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

See all skills by PP-Namias

Report a problem with this skill